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

简介: 大家好,我这里将给大家写一个小demo,在开发中经常会遇到。

数组对象相同属性的相加


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)
复制代码


网络异常,图片无法展示
|


数组去重


//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]



相关文章
|
8月前
|
Java
数组的练习
数组的练习
|
4月前
|
存储 算法 编译器
C 数组详解
在C语言中,数组是一种用于存储多个同类型数据的集合。本文介绍了数组的基本特性与使用方法,包括定义与初始化、索引访问、多维数组、指针操作、大小计算及函数传递等内容。数组名可视为指向首元素的指针,支持遍历、排序与查找等常见操作。数组大小固定,访问越界会导致未定义行为。此外,还可以将数组嵌套在结构体中以增加数据复杂性。
73 10
|
7月前
|
存储 开发框架 .NET
C#中的数组探索
C#中的数组探索
|
存储 C语言 索引
C 数组
C 数组。
47 0
|
8月前
|
存储 C++ 索引
C++数组
C++数组
70 0
|
8月前
|
编译器 C++
C++系列四:数组
C++系列四:数组
|
算法
三 数组
三 数组
64 0
|
存储 编译器 C语言
C语言知识点之 数组
C语言知识点之 数组
98 0
|
存储 编译器 程序员
|
存储 算法 Java
4 数组
4 数组
123 0