请注意,本文编写于 1544 天前,最后修改于 993 天前,其中某些信息可能已经过时。
数组去重的思路有很多,个人总结了一下常用的记住简单去重方法,供参考。
思路一
双重循环数组,依次比较前一个值与后面每一个值,相等就删除后面出现的值
// 数组去重
var arr = [1, 2, 2, 4, 2];
function unique(arr) {
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] == arr[j]) {
arr.splice(j, 1);
j--
}
}
}
return arr;
}
思路二
定义一个新的空数组,遍历原数组,判断新数组中是否有当前循环的值,没有则将该值push进新数组
function unique(arr){
let newArr = [];
arr.forEach(item => {
if (newArr.indexOf(item)===-1) {
newArr.push(item)
}
});
return newArr;
}
思路三
利用对象值的唯一性
function unique(arr){
let obj = {};
arr.forEach(item => {
obj[item] = 1
});
return Object.keys(obj);
}
思路四
利用ES6新增的Set类型无重复字段的特性
function unique(arr){
return [...new Set(arr)];
}
版权属于:Sanakey(特殊声明除外)
本文链接:https://keymoe.com/archives/90/
所有原创文章采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。 您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。