JavaScript 中实现数组去重的方法有多种,其中常用的方法包括:

  1. 利用 Set 数据结构进行去重:
  2. 利用 Array.prototype.filter() 方法进行去重:
  3. 利用 Array.prototype.reduce() 方法进行去重:
  4. 利用 Object.keys() 方法和对象属性不重复的特性进行去重:
1
2
3
const arr = [1, 2, 3, 3, 4, 4, 5];
const uniqueArr = [...new Set(arr)];
// uniqueArr: [1, 2, 3, 4, 5]
1
2
3
const arr = [1, 2, 3, 3, 4, 4, 5];
const uniqueArr = arr.filter((item, index, arr) => arr.indexOf(item) === index);
// uniqueArr: [1, 2, 3, 4, 5]
1
2
3
const arr = [1, 2, 3, 3, 4, 4, 5];
const uniqueArr = arr.reduce((prev, curr) => (prev.includes(curr) ? prev : [...prev, curr]), []);
// uniqueArr: [1, 2, 3, 4, 5]
1
2
3
const arr = [1, 2, 3, 3, 4, 4, 5];
const uniqueArr = Object.keys(arr.reduce((prev, curr) => Object.assign(prev, { [curr]: curr }), {}));
// uniqueArr: ["1", "2", "3", "4", "5"]

需要注意的是,这些方法的去重效率和适用场景可能有所不同。例如,基于 Set 的方法通常具有较高的效率和较好的语义表达,适用于对简单类型数据的去重;而基于 filter 或 reduce 的方法则可以自定义去重的逻辑,适用于对复杂类型数据的去重。