js数组去重的10种有效方法 vue 数组去重,【福利】
在Vue中,数组去重可以通过多种方式实现,以下是10种有效的方法:
- 使用
Set
对象
let arr = [1, 2, 2, 3, 4, 4, 5];
arr = [...new Set(arr)];
- 使用
filter
和indexOf
let arr = [1, 2, 2, 3, 4, 4, 5];
arr = arr.filter((item, index, arr) => arr.indexOf(item) === index);
- 使用
reduce
let arr = [1, 2, 2, 3, 4, 4, 5];
arr = arr.reduce((accumulator, current) => {
if (!accumulator.includes(current)) {
accumulator.push(current);
}
return accumulator;
}, []);
- 使用
for
循环
let arr = [1, 2, 2, 3, 4, 4, 5];
let uniqueArr = [];
for (let i = 0; i < arr.length; i++) {
if (uniqueArr.indexOf(arr[i]) === -1) {
uniqueArr.push(arr[i]);
}
}
- 使用
sort
然后比较相邻元素
let arr = [1, 2, 2, 3, 4, 4, 5];
arr.sort((a, b) => a - b);
arr = arr.filter((item, index, arr) => !index || item !== arr[index - 1]);
- 使用
Map
对象
let arr = [1, 2, 2, 3, 4, 4, 5];
arr = Array.from(arr.map(item => item)).reduce((accumulator, current) => {
accumulator.set(current, true);
return accumulator;
}, new Map()).keys();
- 使用
filter
和includes
let arr = [1, 2, 2, 3, 4, 4, 5];
arr = arr.filter((item, index, arr) => arr.includes(item, index + 1));
- 使用
for...of
循环和splice
let arr = [1, 2, 2, 3, 4, 4, 5];
for (let i = 0; i < arr.length; i++) {
for (let j = i + 1; j < arr.length; j++) {
if (arr[i] === arr[j]) {
arr.splice(j, 1);
j--;
}
}
}
- 使用
forEach
和push
let arr = [1, 2, 2, 3, 4, 4, 5];
let uniqueArr = [];
arr.forEach(item => {
if (uniqueArr.indexOf(item) === -1) {
uniqueArr.push(item);
}
});
- 使用
while
循环和splice
let arr = [1, 2, 2, 3, 4, 4, 5];
for (let i = 0; i < arr.length; i++) {
while (arr.indexOf(arr[i]) !== arr.lastIndexOf(arr[i])) {
arr.splice(arr.lastIndexOf(arr[i]), 1);
}
}
以上任何一种方法都可以有效去除数组中的重复项,你可以根据具体场景选择最适合的方法。在Vue中,通常会将去重逻辑封装在一个方法中,并在需要去重的地方调用这个方法。
评论已关闭