最实用的数组去重方法、数组的相邻元素的去重方法和对象数组的去重方法

实现的效果:

数组的相邻元素去重:

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,及时联系---------------------------------------------------------------------------------------------------------------------------------------------------

发布了58 篇原创文章 · 获赞 41 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/Zeng__Yi/article/details/89533037
今日推荐