數組去重的兩個小技巧

數組去重的兩個小技巧

首先es6有提供了 Set 對象, 同java中的 Set, set中的值不能夠重複.

因此對於一個數組咱們能夠直接採用java

const duplicateArr = [2,3,4,4,4,3];
const newArray = [...new Set(duplicateArr)];
console.log(newArray);

能夠採用filter函數進行過濾, 查看index 是否跟當前的index一致. 由於indexOf返回的是第一個查找的位置

const duplicateArr = [2,3,4,4,4,3];
const newArray = duplicateArr.filter((value,index,arr)=>{
    return arr.indexOf(value) === index;
    //或者
    //return arr.findIndex(value) === index;
})
console.log(newArray);

能夠採用Object中的key值不重複的特性, 這種方法比較一些簡單數組, 由於Object.keys中的key默認都爲字符串

const duplicateArr = [2,3,4,4,4,3];
const newObject = {};
for(let i in duplicateArr) {
    if (!newObject[duplicateArr[i]]){
        newObject[duplicateArr[i]] = 1;//只是記錄一下
    }
    else {
    //這裏也能夠增長計數類的處理
    }
}
console.log(Object.keys(newObject));
相關文章
相關標籤/搜索