1

此文章用于增强数组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
}

}


yinghan
1 声望0 粉丝