运用javascript如何去除数组中重复的数字或者字符串?
在 JavaScript 中,去除数组中重复的数字或字符串可以通过多种方法实现。以下是几种常用的方法:
1. 使用 Set
Set
是 JavaScript 中的一种集合类型,它只允许唯一的值。可以利用 Set
自动去除数组中的重复项。
javascriptconst array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = [...new Set(array)];
console.log(uniqueArray); // 输出: [1, 2, 3, 4, 5]
2. 使用 filter
方法
filter
方法结合 indexOf
或 includes
方法也可以去除数组中的重复项。
javascriptconst array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = array.filter((value, index, self) => self.indexOf(value) === index);
console.log(uniqueArray); // 输出: [1, 2, 3, 4, 5]
3. 使用 reduce
方法
reduce
方法可以通过累加器和条件判断来去除重复项。
javascriptconst array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = array.reduce((accumulator, current) => {
if (!accumulator.includes(current)) {
accumulator.push(current);
}
return accumulator;
}, []);
console.log(uniqueArray); // 输出: [1, 2, 3, 4, 5]
4. 使用 forEach
方法
可以使用 forEach
方法和一个临时数组来去除重复项。
javascriptconst array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = [];
array.forEach(item => {
if (!uniqueArray.includes(item)) {
uniqueArray.push(item);
}
});
console.log(uniqueArray); // 输出: [1, 2, 3, 4, 5]
5. 去除重复的对象
如果数组包含对象而不是基本数据类型,可以通过 map
和 filter
方法去除重复对象。假设对象通过 id
唯一标识:
javascriptconst array = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, name: 'Alice' }
];
const uniqueArray = Array.from(new Map(array.map(item => [item.id, item])).values());
console.log(uniqueArray);
// 输出: [ { id: 1, name: 'Alice' }, { id: 2, name: 'Bob' } ]
6. 总结
Set
:最简单、最直观的方法,适用于去除基本数据类型的重复项。filter
、reduce
、forEach
:适用于需要更多控制或对特定情况的处理。- 对象数组:可以通过
Map
或类似的方法去除重复对象,依据唯一标识符。
关键字
JavaScript, 去除重复, 数组, Set, filter, reduce, forEach, 对象数组, Map, 唯一标识