美文网首页
javascript数组中对象元素的去重实现

javascript数组中对象元素的去重实现

作者: Hi小胡 | 来源:发表于2018-01-18 13:05 被阅读9次

如果数组是一般的数组,例如:

var arr = [1,1,2,2,3,3];

针对以上数组的去重实现:

var arr = [1,1,2,2,3,3];

var newArr = [...new Set(arr)];
//或
var newArr = [Array.from(new Set(arr))];

但是如果数组是由对象元素组成的:

var arr = [
  {
      id: 1,
      name: '张三'
  },
  {
      id: 1,
      name: '张三'
  },
  {
      id: 2,
      name: '李四'
  }
];

这个时候利用刚刚的方法就不能进行去重了,这类算法实现的方法很多,下面给出一种自己发明方法:

步骤:
1.创建一个新数组newArr
2.遍历原数组arr
3.判断新数组中是否有,如果没有则添加,反之则不添加
(判断新数组没有的对应元素的方法使用了Array.filter方法)

var newArr = [];
for(let i=0;i<arr.length;i++){
  //如果新数组中没有,则添加
  if(notHas(newArr,arr[i].id)){
    newArr.push(arr[i]);
  }
}

//新数组中是否已经有还有对应id的元素,如果没有返回true,反之返回false
var notHas = (arr,id) =>{
  var narr = arr.filter((item) =>{
    return item.id == id;
  });
  return narr.length == 0 ? true : false;
};

相关文章

  • javascript数组中对象元素的去重实现

    如果数组是一般的数组,例如: 针对以上数组的去重实现: 但是如果数组是由对象元素组成的: 这个时候利用刚刚的方法就...

  • 前端开发工程师必备系列-3分钟让你搞清楚,对象元素的数组去重实现

    3分钟让你搞清楚,对象元素的数组去重实现方法 今天我们来讲讲,对象元素的数组去重实现,普通简单的数组我们就不讲的,...

  • Array集结号

    实现数组去重的几种方法 数组去重一 数组去重二 利用数组indexof+push实现数组去重 数组去重三 利用对象...

  • javascript数组去重,数组对象去重

    利用Reduce去重 function unique(arr) {var obj = {};arr = arr.r...

  • js reduce去重用法

    reduce不仅仅可以数据累加,还可以实现去重效果。 重复次数计算 数组去重 数组对象去重,转为数组 对象去重

  • js手写数组去重

    javascript数组中若存在重复元素,此时我们需要将重复的元素去除,下面我讲介绍一下几种方法进行数组元素去重 ...

  • 数组去重

    数组去重是将数组中重复的元素 一:Set对象 二:定义新数组,存放原来数组的一个元素,然后和剩下的比较,如果不同,...

  • js常用方法

    类型判断 数组 对象 去重方法(一) 数组 对象 去重方法(二) 数组(字符串)一个元素出现的次数 删除数组中一个...

  • js 数组操作合集(主要针对对象数组)

    1,根据对象中元素 查找对象数组中对应的元素 2,删除数组中指定对象的元素 并返回删除后的数组 3,js数组实现权...

  • reduce 对象数组去重

    reduce 对象数组去重: 解析:其实就是用 obj 来存储已经放入新数组的元素,每次遍历旧数组都去 obj 中...

网友评论

      本文标题:javascript数组中对象元素的去重实现

      本文链接:https://www.haomeiwen.com/subject/lvtwoxtx.html