实现的效果:
数组的相邻元素去重:
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,及时联系---------------------------------------------------------------------------------------------------------------------------------------------------