JS数组怎么去重?| JavaScript中数组去重的14种方法
JavaScript中数组去重的方法有很多种,以下是14种常见的方法:
- 使用 Set
const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = [...new Set(array)];
- 使用 filter 和 indexOf
const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = array.filter((item, index) => array.indexOf(item) === index);
- 使用 reduce
const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = array.reduce((accumulator, current) => {
if (accumulator.indexOf(current) === -1) {
accumulator.push(current);
}
return accumulator;
}, []);
- 使用 Map 或 Object
const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = Array.from(array.reduce((map, item) => map.set(item, item), new Map()).values());
- 使用 sort 和 lastItem 变量
const array = [1, 2, 2, 3, 4, 4, 5];
array.sort();
const uniqueArray = array.filter((item, index, arr) => item !== arr[index + 1]);
- 使用 for 循环和 indexOf
const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = [];
for (let i = 0; i < array.length; i++) {
if (uniqueArray.indexOf(array[i]) === -1) {
uniqueArray.push(array[i]);
}
}
- 使用 includes
const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = array.filter((item, index, arr) => !arr.includes(item, index + 1));
- 使用 reduce 和 includes
const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = array.reduce((accumulator, current) => {
if (!accumulator.includes(current)) {
accumulator.push(current);
}
return accumulator;
}, []);
- 使用 reduce 和 Map
const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = array.reduce((map, item) => map.set(item, item), new Map()).values();
- 使用 filter 和 indexOf 进行深度比较
const array = [{ id: 1 }, { id: 2 }, { id: 1 }, { id: 3 }];
const uniqueArray = array.filter((item, index) =>
index === array.findIndex(subItem => subItem.id === item.id)
);
- 使用 reduce 和 Object
const array = [{ id: 1 }, { id: 2 }, { id: 1 }, { id: 3 }];
const uniqueArray = array.reduce((accumulator, current) => {
if (!accumulator.find(item => item.id === current.id)) {
accumulator.push(current);
}
return accumulator;
}, []);
- 使用 Map 和 forEach
const array = [{ id: 1 }, { id: 2 },
评论已关闭