javascript数组对象根据id去重的四种方法

简介: javascript数组对象根据id去重的四种方法

例如:想去除重复id为1的项

arr = [
  { id: 1, name: '张三', age: 20 },
  { id: 1, name: '张三', age: 20 },
  { id: 2, name: '李四', age: 20 },
  { id: 3, name: '马五', age: 20 }
];

方法一

通过forEach再通过some方法判断数组是否包含当前对象id,不包含则添加

some() {
  let some: any = [];
  this.arr.forEach(el => {
    if (!some.some(e => e.id == el.id)) {
      some.push(el);
    }
  });
  console.log(some);
}

方法二

通过forEach再通过find方法判断数组是否包含当前对象id,不包含则添加

find() {
  let find: any = [];
  this.arr.forEach(el => {
    if (!find.find(e => e.id == el.id)) {
      find.push(el);
    }
  });
  console.log(find);
}

方法三

通过reduce方法,通过定义的obj,判断obj[next.id] 是否存在,存在设置为“”,不存在则push

reduce() {
  let obj = {};
  let reduce = [];
  reduce = this.arr.reduce(function (item, next) {
    //item为没有重复id的数组,next为当前对象
    obj[next.id] ? '' : (obj[next.id] = true && item.push(next));
    return item;
  }, []);
  console.log(reduce);
}

方法四

通过for循环遍历,再通过some方法判断数组是否包含当前对象id,不包含则添加

forAway() {
  let forData = [];
  for (let i = 0; i < this.arr.length; i++) {
    if (!forData.some(e => e.id == this.arr[i].id)) forData.push(this.arr[i]);
  }
  console.log(forData);
}
目录
相关文章
|
1天前
|
前端开发 JavaScript 开发者
JavaScript中的异步编程方法总结
在JavaScript开发中,处理异步操作是非常常见的情况。本文将总结JavaScript中常用的异步编程方法,包括Callback、Promise、Async/Await等,分析其优缺点,并提供使用建议。
|
3天前
|
缓存 前端开发 JavaScript
React和Next.js开发常见的HTTP请求方法
React和Next.js开发常见的HTTP请求方法
6 0
|
3天前
|
JSON 前端开发 JavaScript
前端 JS 经典:JSON 对象
前端 JS 经典:JSON 对象
8 0
|
3天前
|
前端开发 JavaScript
前端 JS 经典:Math 常用方法汇总
前端 JS 经典:Math 常用方法汇总
6 0
|
3天前
|
前端开发 JavaScript
前端 js 经典:Object 常用原生方法
前端 js 经典:Object 常用原生方法
10 2
|
3天前
|
前端开发 JavaScript
前端 js 经典:原型对象和原型链
前端 js 经典:原型对象和原型链
14 1
|
3天前
|
前端开发 JavaScript
前端 js 经典:array 原生方法
前端 js 经典:array 原生方法
9 1
|
3天前
|
JavaScript 前端开发 流计算
使用JavaScript 中的Math对象和勾股定理公式,计算鼠标的位置与页面图片中心点的距离,根据距离对页面上的图片进行放大或缩小处理
使用JavaScript 中的Math对象和勾股定理公式,计算鼠标的位置与页面图片中心点的距离,根据距离对页面上的图片进行放大或缩小处理
|
3天前
|
JSON JavaScript 前端开发
js将json字符串还原为json对象
【5月更文挑战第14天】js将json字符串还原为json对象
26 1
|
5天前
|
JavaScript 前端开发
JS将两个数组和合并成数组包对象格式的方法
JS将两个数组和合并成数组包对象格式的方法
31 0