js使用es6实现数组对象对应属性的去重

相信在开发过程中大家都有遇到需要对数据进行去重的需求。后台返回的数据都是json数据嵌套,那么就会面临需要对嵌套数据进行去重的要求。这个问题一开始我是使用遍历循环判断实现的,但是es6的reduce方法为我们提供了更好的实现方式。以下是代码实现:

function uniqueArr (arr, key) {

  let hash = {};

  return arr.reduce((newArr, item, index, arr) => {

    hash[item[key]] ? '' : hash[item[key]] = true && newArr.push(item);

    return newArr;

  },[])

}

但是这种方法有一个弊端相信大家都已经看出来了,就是作为hash去重对象的key,最后item[key]的值,Number类型和String类型的数字会被认为是重复对象而被去除。但是这确实是一个比较简单的数组对象出重方式。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容