此文章用于增强数组api使用的灵活度,如有更好的方法,希望留言互相交流^_^
1.数组去重
方法一
function duplicateRemoval1(arr) {
arr.sort();
let tmp=arr[0];
for (var i = 1; i < arr.length; i++) {
if(tmp == arr[i]){
arr.splice(i,1);
i--;
}else {
tmp = arr[i];
}
}
return arr;
}
方法二
function duplicateRemoval2(arr) {
let tmp=arr.filter((value,index)=>{
return !(arr.indexOf(value) < index)
});
return tmp;
}
方法三:
newArr=Array.from(new Set(arr));
方法四:
newArr=[...new Set(arr)];
2.取数组中的最大值
方法一:
max=Math.max.apply(null,array);
方法二:
max=arr.reduce((pre,value)=>{
return pre>value ? pre:value
});
3.数组的交集、并集、差集
function c(arr1,arr2){
let a=new Set(arr1);
let b=new Set(arr2);
//并集
let union=Array.from(new Set([...a,...b]));
//交集
let intersect = Array.from(new Set([...a].filter(x => b.has(x))));
//差集
let difference = Array.from(new Set(union.filter(x => !intersect.includes(x))));
return {
union:union,
intersect:intersect,
difference:difference
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。