原生JS关于数组对象相同属性的相加与数组去重

数组对象相同属性的相加

 let obj = {};
 const arr = [
 { name: 'A', stock: 1 }, 
 { name: 'B', stock: 1 }, 
 { name: 'A', stock: 33 }, 
 { name: 'B', stock: 2 }, 
 { name: 'C', stock: 0 }
 ];
// 第一种方式
 arr.forEach(v => obj[v.name] = obj[v.name] === undefined ? v.stock : obj[v.name] + v.stock)
 console.log(obj) 
// 第二种方法
arr.forEach(v=>{
 	if (obj.hasOwnProperty(v.name)) {
 		obj[v.name] += v.stock
 	} obj [v.name] = v.stock
 })
 console.log(obj)

在这里插入图片描述

数组去重

//1 reduce去重,针对数组对象
let person = [
      {id: 0, name: "A"},
      {id: 1, name: "B"},
      {id: 2, name: "C"},
      {id: 3, name: "D"},
      {id: 1, name: "E"},
      {id: 2, name: "F"},   
 ];

 let obj = {};
 let peon = person.reduce((cur,next) => {
     obj[next.id] ? "" : obj[next.id] = true && cur.push(next);
     return cur;
 },[]) //设置cur默认类型为数组,并且初始值为空的数组
 console.log(peon);
 //2 Set去重,针对纯数组元素
 let arr = [1,2,2];
 console.log([...new Set(arr)]); // [1,2]
发布了160 篇原创文章 · 获赞 280 · 访问量 168万+

猜你喜欢

转载自blog.csdn.net/qq_39045645/article/details/103383230