JS 数组或数组对象去重的9种方法
在JavaScript中,数组去重可以通过多种方法实现。以下是9种常见的去重方法:
- 使用 Set
- 使用 filter 和 indexOf
- 使用 reduce
- 使用 Map 或 Object
- 使用 Recurse
- 使用 Array.from 和 new Set
- 使用 for 循环和 includes
- 使用 while 循环和 splice
- 使用 sort 和 last
以下是每种方法的示例代码:
- 使用 Set
const array = [1, 2, 1, 3, 5, 5, 4];
const uniqueArray = [...new Set(array)];
- 使用 filter 和 indexOf
const array = [1, 2, 1, 3, 5, 5, 4];
const uniqueArray = array.filter((item, index, arr) => arr.indexOf(item) === index);
- 使用 reduce
const array = [1, 2, 1, 3, 5, 5, 4];
const uniqueArray = array.reduce((acc, current) => {
if (acc.indexOf(current) === -1) {
acc.push(current);
}
return acc;
}, []);
- 使用 Map 或 Object
const array = [1, 2, 1, 3, 5, 5, 4];
const uniqueArray = [];
const check = {};
array.forEach(item => {
if (!check[item]) {
check[item] = true;
uniqueArray.push(item);
}
});
- 使用 Recurse
const array = [1, 2, 1, 3, 5, 5, 4];
function removeDuplicates(arr, index) {
if (index >= arr.length) return arr;
if (arr.indexOf(arr[index]) !== index) {
arr.splice(index, 1);
}
return removeDuplicates(arr, index + 1);
}
const uniqueArray = removeDuplicates(array.slice(), 0);
- 使用 Array.from 和 new Set
const array = [1, 2, 1, 3, 5, 5, 4];
const uniqueArray = Array.from(new Set(array));
- 使用 for 循环和 includes
const array = [1, 2, 1, 3, 5, 5, 4];
const uniqueArray = [];
for (let i = 0; i < array.length; i++) {
if (!uniqueArray.includes(array[i])) {
uniqueArray.push(array[i]);
}
}
- 使用 while 循环和 splice
const array = [1, 2, 1, 3, 5, 5, 4];
for (let i = 0; i < array.length; i++) {
while (array.indexOf(array[i]) !== array.lastIndexOf(array[i]) && array.indexOf(array[i]) !== i) {
array.splice(array.indexOf(array[i]), 1);
}
}
- 使用 sort 和 last
const array = [1, 2, 1, 3, 5, 5, 4];
array.sort();
for (let i = 0; i < array.length - 1; i++) {
if (array[i]
评论已关闭