列三个比较常见的:
1.indexOf()去重:
function unique(array){
var temp = [];
for(var i = 0; i < array.length; i++){
if(temp.indexOf(array[i]) == -1){
temp.push(array[i]);
}
}
return temp;
}
2.Set(ES6红利)
function unique(array) {
return [...new Set(array)]
}
ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。
3.Map
vue2的基础definePrototype并不支持监听map,vue3将从definePrototype过渡到proxy,而proxy可以很好的用作map的监听,故而vue3支持了map和set的绑定功能。
function unique(arr) {
const res = new Map();
//过滤条件是,如果res中没有某个键,就设置这个键的值为1
return arr.filter((a) => !res.has(a) && res.set(a, 1))
}
参考:灰色的龙猫 es6 map与weakmap与array对比以及应用
一粒一世界 Set、Map及数组去重