實現的效果:
數組的相鄰元素去重:
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,及時聯繫---------------------------------------------------------------------------------------------------------------------------------------------------