以前合并数组用的concat,去重用的双重循环比较后用splice删除。
最近发现es6的合并去重实在是省代码
合并数组——新数组=[…要合并的数组1,…要合并的数组2]
let arr3 = [...arr1,...arr2]
数组去重——新数组=new Set([…要去重的数组])
let arr4 = new Set(arr3)
arr4 = [...arr4]
注意:如果是对象数组去重则需要别的方法
let arr3 = [...arr1,...arr2]//合并了数组对象
let obj = {};//一个新对象
//reduce的用法,数组对象的去重,不会排序
arr3 = arr3.reduce((cur,next) => {
obj[next.id] ? "" : obj[next.id] = true && cur.push(next);
return cur;
},[]) //设置cur默认类型为数组,并且初始值为空的数组
//reduce用法
array.reduce(function(total, currentValue, currentIndex, arr), initialValue);
/*
total: 必需。初始值, 或者计算结束后的返回值。
currentValue: 必需。当前元素。
currentIndex: 可选。当前元素的索引;
arr: 可选。当前元素所属的数组对象。
initialValue: 可选。传递给函数的初始值,相当于total的初始值。
*/
数组排序——新数组=要排序的数组.sort((a,b)=>{ return a - b; })//a-b是由小到大,反之
arr4.sort((a,b)=>{ return a - b; })