最實用的數組去重方法、數組的相鄰元素的去重方法和對象數組的去重方法

實現的效果:

數組的相鄰元素去重:

const orginArr= [1,1,2,3,3,4,4,5,5,6,5,4,3,2,2,1,1],

const unique = (arr) => {

let newArr=[arr[0]]

for(let i=1;i<arr.length;i++){

if(arr[i]!==newArr[newArr.length-1]){

newArr.push(arr[i])

}

}

return newArr

}

const newArr1 = unique(orginArr)    //[1,2,3,4,5,6,5,4,3,2,1]

數組的去重:

一,使用Es6語法:

const orginArr= [1,1,2,3,3,4,4,5,5,6,5,4,3,2,2,1,1],

const unique = (arr) => Array.from(new Set(arr))

const newArr = unique(orginArr)    // [1,2,3,4,5,6]

二,使用相鄰元素去重的方法:

在使用相鄰元素去重之前 將需要去重的元素排序,則就達到了元素去重的目的

const unique = (arr1) => {

 const arr=arr1.sort()   // 將需要去重的數組排序

let res=[arr[0]]

for(let i=1;i<arr.length;i++){

if(arr[i]!==res[res.length-1]){

res.push(arr[i])

}

}

return res

}

const newArr1 = unique(orginArr)

對象數組的去重:

第一種比較好理解的方式:

//普通的方法

const common = (arr) => {

const res=[]

for (let i = 0; i < arr.length; i++) {

var flag = true;

for(let j=0;j<res.length;j++){

if(arr[i].name===res[j].name){

flag=false

}

}

if(flag){

res.push(arr[i])

}

}

return res

}

const data = common(objectArr)

第二種複雜度比較低的方法:

// 複雜度比較低的 對象數組的某一項相同

const common = (arr) => {

let oldArrKeys = [], newArr = []

arr.filter((item) => {

if (!oldArrKeys[item.name]) {

oldArrKeys[item.name] = true;

newArr.push(item)

}

})

return newArr

}

const data = common(objectArr)

-------------------------------------------------------------------------------------------------------------------------------------------------------------------如遇到問題:+WX:WAZJ-0508,及時聯繫---------------------------------------------------------------------------------------------------------------------------------------------------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章