共计 2394 个字符,预计需要花费 6 分钟才能阅读完成。
1、利用排序后,再去重
// 1、利用排序后,再去重
let arrList = [1, 1, 4, 2, 4, 3, 8, 4, 5, 6, 7, 5]
// 1.1 利用 sort 拍讯
arrList.sort((a, b) => {return a - b})
// 1.2 利用冒泡排序
// for (let i = 0; i < arrList.length; i++) {// for (let j = i + 1; j < arrList.length; j++) {// if (arrList[i] > arrList[j]) {// let temp = arrList[i];
// arrList[i] = arrList[j];
// arrList[j] = temp;
// }
// }
// }
let newArrList = [];
for (let i = 0; i < arrList.length; i++) {if (arrList[i] != arrList[i + 1]) {newArrList.push(arrList[i])
}
}
2、双重 for 循环去重
// 2、双重 for 循环去重
let arrList = [1, 1, 4, 2, 4, 3, 8, 4, 999, 5, 6, 7, 5]
for (let i = 0; i < arrList.length; i++) {for (let j = i + 1; j < arrList.length; j++) {if (arrList[i] === arrList[j]) {arrList.splice(j, 1);
j--
}
}
}
3、利用 indexof 去重
// 3、利用 indexof 去重
let arrList = [1, 1, 4, 2, 4, 3, 8, 4, 999, 5, 6, 7, 5];
let newArrList = [];
for (let i = 0; i < arrList.length; i++) {if (newArrList.indexOf(arrList[i]) === -1) {newArrList.push(arrList[i])
}
}
4、利用对象属性去重
// 4、利用对象属性去重
let arrList = [1, 1, 4, 2, 4, 3, 8, 4, 999, 5, 6, 7, 5];
let obj = {};
for (let i = 0; i < arrList.length; i++) {if (!obj[arrList[i]]) {obj[arrList[i]] = arrList[i]
}
}
5、利用 es6 的 new Set() 配合... 开展语法去重
// 5、利用 es6 的 new set() 配合... 开展语法去重
let arrList = [1, 1, 4, 2, 4, 3, 8, 4, 999, 5, 6, 7, 5];
console.log([...new Set(arrList)])
6、利用 es6 的 new Set() 配合 Array.from() 去重
// 6、利用 es6 的 new Set() 配合 Array.from() 去重
let arrList = [1, 1, 4, 2, 4, 3, 8, 4, 999, 5, 6, 7, 5];
console.log(Array.from(new Set(arrList)))
7、利用数组的 includes 办法
// 7、利用数组的 includes 办法
let arrList = [1, 1, 4, 2, 4, 3, 8, 4, 999, 5, 6, 7, 5];
let newArrList = [];
for (let i = 0; i < arrList.length; i++) {if (!newArrList.includes(arrList[i])) {newArrList.push(arrList[i])
}
}
8、利用数组的 filter()+indexOf()
// 8、利用数组的 filter()+indexOf()
let arrList = [1, 1, 4, 2, 4, 3, 8, 4, 999, 5, 6, 7, 5];
let newArrList = arrList.filter((item, index) => {return arrList.indexOf(item) === index;
})
9、Map 对象是 JavaScript 提供的一种数据结构,构造为键值对模式,将数组元素作为 map 的键存入,前端培训而后联合 has() 和 set() 办法判断键是否反复。// 9、利用 new Map()
let arrList = [1, 1, 4, 2, 4, 3, 8, 4, 999, 5, 6, 7, 5];
let newArrList = [];
let map = new Map();
arrList.forEach(item => {if (!map.has(item)) {newArrList.push(item);
map.set(item, true);
}
})
10、利用 reduce 联合 includes 去重
// 10、利用 reduce 联合 includes 去重
let arrList = [1, 1, 4, 2, 4, 3, 8, 4, 999, 5, 6, 7, 5];
let newArrList = arrList.reduce((prev, cur) => {return prev.includes(cur) ? prev : [...prev, cur]
},[])
正文完
发表至: javascript
2022-05-31