1. 程式人生 > >陣列物件去重 和 陣列求和的幾種方法

陣列物件去重 和 陣列求和的幾種方法

陣列去重

1,陣列物件去重:id、name,type都重複的時候,才會被去重

delRepeat(arr) { 
      return Object.values(
        arr.reduce((obj, next) => {
          var key = JSON.stringify(next);
          return (obj[key] = next), obj;
        }, {}),
      );
    }

2,根據你設定的陣列物件裡的某一個屬性動態去重 (例如根據物件裡面的id 或者是name)

 baseDel(arr) {
          const res = new Map();
          return arr.filter((item) => !res.has(item.name) && res.set(item.name, 1))
        },

3.判斷新增的陣列在已經存在的陣列中是否已經存在

var arr = [
			{name: 'sxy',type: '1'},
			{name: 'sxy',type: '2'},
			{name: 'sxy',type: '2'},
		]
var addArr = [
	{name: 'sxy',type: '1'},
	{name: 'hhh',type: '2'},
]
var newArr = [];
for (var i in addArr) {
	var count = 0;
	for(var j in arr) {
		if(addArr[i].name == arr[j].name && addArr[i].type == arr[i].type) {
			count++
			break
		}
	}
	if(count === 0) {
		newArr.push(addArr[i])
	}
}
console.log(newArr)

陣列求和

1,最基本的陣列求和

var arr = new Array();
for(var i=0;i<100000;i++){
    arr.push(i*12);
}
var sum = 0;
for(var i = 0; i < arr.length; i++) {
	sum  += a[i];
}
console.log(sum)

2,用eval求和

eval(arr.join("+"))

3, 用reduce()求和

var sum = arr.reduce(function(accumulator, currentValue, currentIndex, array) {
	return accumulator + currentValue;
})
console.log(sum)