运用javascript如何去除数组中重复的数字或者字符串?

在 JavaScript 中,去除数组中重复的数字或字符串可以通过多种方法实现。以下是几种常用的方法:

1. 使用 Set

Set 是 JavaScript 中的一种集合类型,它只允许唯一的值。可以利用 Set 自动去除数组中的重复项。

javascript
const array = [1, 2, 2, 3, 4, 4, 5]; const uniqueArray = [...new Set(array)]; console.log(uniqueArray); // 输出: [1, 2, 3, 4, 5]

2. 使用 filter 方法

filter 方法结合 indexOfincludes 方法也可以去除数组中的重复项。

javascript
const 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 方法可以通过累加器和条件判断来去除重复项。

javascript
const 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 方法和一个临时数组来去除重复项。

javascript
const 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. 去除重复的对象

如果数组包含对象而不是基本数据类型,可以通过 mapfilter 方法去除重复对象。假设对象通过 id 唯一标识:

javascript
const 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:最简单、最直观的方法,适用于去除基本数据类型的重复项。
  • filterreduceforEach:适用于需要更多控制或对特定情况的处理。
  • 对象数组:可以通过 Map 或类似的方法去除重复对象,依据唯一标识符。

关键字

JavaScript, 去除重复, 数组, Set, filter, reduce, forEach, 对象数组, Map, 唯一标识