前端JavaScript篇之JavaScript中数组去重的方式有哪些,比较常用哪个?

发布时间:2024年01月23日


JavaScript中数组去重的方式有哪些,比较常用哪个?

在JavaScript中,有几种常见的数组去重方式。以下是一些常见的方法,以及它们的优缺点:

1. 使用 Set:

const myArray = [1, 2, 2, 3, 4, 4, 5]
const uniqueArray = [...new Set(myArray)]
console.log(uniqueArray)
  • 优点: Set 中的元素是唯一的,可以轻松实现去重。
  • 缺点: 原始数组中的元素顺序可能不会被保留,且Set是ES6中的特性。

2. 使用 filter 和 indexOf:

const myArray = [1, 2, 2, 3, 4, 4, 5]
const uniqueArray = myArray.filter((value, index, self) => self.indexOf(value) === index)
console.log(uniqueArray)

  • 优点: 保留了原始数组中的元素顺序。
  • 缺点: 对于大型数组来说,性能可能不如 Set。

3. 使用 reduce:

const myArray = [1, 2, 2, 3, 4, 4, 5]
const uniqueArray = myArray.reduce((accumulator, currentValue) => {
  if (!accumulator.includes(currentValue)) {
    accumulator.push(currentValue)
  }
  return accumulator
}, [])
console.log(uniqueArray)
  • 优点: 可以保留原始数组中的元素顺序。
  • 缺点: 对于大型数组来说,性能可能相对较低。

4. 使用 Map:

const myArray = [1, 2, 2, 3, 4, 4, 5]
const uniqueArray = Array.from(new Map(myArray.map(value => [value, value])).values())
console.log(uniqueArray)
  • 优点: 可以保留原始数组中的元素顺序。
  • 缺点: 相对于 Set,可能性能稍逊。

常用方式:

  • 使用 Set 的方式 是目前在实际开发中应用较广泛的方法。它简洁、直观,并且能够高效地去重。在不需要保留原始数组元素顺序的情况下,这是推荐的方式。

  • 如果需要保留原始数组中的元素顺序,而且不使用ES6特性的话,使用 filter 和 indexOf 的方式 是一个不错的选择。

选择去重方式时,可以根据实际需求和性能考虑来决定使用哪种方法。

持续学习总结记录中,回顾一下上面的内容:
在JavaScript中,有几种常见的数组去重方式。Set、filter 和 indexOf、reduce、Map
使用 Set 的方式 是目前在实际开发中应用较广泛的方法。它简洁、直观,并且能够高效地去重。在不需要保留原始数组元素顺序的情况下,这是推荐的方式。

文章来源:https://blog.csdn.net/qq_37255976/article/details/135755753
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。