原生JS關(guān)于數(shù)組對(duì)象相同屬性的相加與數(shù)組去重


數(shù)組對(duì)象相同屬性的相加

 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
     } else{
        obj [v.name] = v.stock
     }
 })
console.log(obj)

 







數(shù)組去重

//1 reduce去重,針對(duì)數(shù)組對(duì)象
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;
 },[]) //設(shè)置cur默認(rèn)類型為數(shù)組,并且初始值為空的數(shù)組
 console.log(peon);
 //2 Set去重,針對(duì)純數(shù)組元素
 let arr = [1,2,2];
 console.log([...new Set(arr)]); // [1,2]

 

 




作者:Vam的金豆之路

主要領(lǐng)域:前端開發(fā)

我的微信:maomin9761

微信公眾號(hào):前端歷劫之路