javascript数组去重方法汇总

JavaScript 数组去重方法汇总

在前端开发中,我们经常需要对数组进行去重操作。本文将介绍 JavaScript 中几种常见的数组去重方法,以及它们的优缺点和使用场景。

1. Set 去重法

ES6 引入了 Set 类型,可以用来存储不重复的值。利用 Set 的特性,我们可以很方便地实现数组去重。

----- --- - --- -- -- -- -- -- ---
----- --------- - ------- ----------
----------------------- -- --- -- -- -- --

优点:简单易用,性能较好。

缺点:无法去重对象类型的元素。

使用场景:适用于基本数据类型的数组去重。

2. 双重循环法

双重循环法是一种比较容易想到的去重方法,即遍历数组,每次拿当前元素和后面的元素进行比较,如果有相同的就删除后面的那个元素。

-------- ----------- -
  --- ---- - - -- - - ----------- ---- -
    --- ---- - - - - -- - - ----------- ---- -
      -- ------- --- ------- -
        ------------- ---
        ----
      -
    -
  -
  ------ ----
-
----- --- - --- -- -- -- -- -- ---
------------------------- -- --- -- -- -- --

优点:实现简单,可以去重任何类型的元素。

缺点:性能较差,在数组比较大时会有性能问题。

使用场景:适用于小型数组的去重操作。

3. indexOf 去重法

这种方法利用了 indexOf 函数返回第一个匹配项的特性。遍历数组,如果当前元素在该元素之前出现过,则删除当前元素。

-------- ----------- -
  ----- --- - ---
  --- ---- - - -- - - ----------- ---- -
    -- -------------------- --- --- -
      -----------------
    -
  -
  ------ ----
-
----- --- - --- -- -- -- -- -- ---
------------------------- -- --- -- -- -- --

优点:实现简单,可以去重任何类型的元素。

缺点:性能较差,在数组比较大时会有性能问题。

使用场景:适用于小型数组的去重操作。

4. Map 去重法

和 Set 类型类似,Map 类型也可以用来存储不重复的键值对。利用 Map 的特性,我们可以很方便地实现数组去重。

-------- ----------- -
  ----- --- - --- ------
  ----- --- - ---
  --- ---- - - -- - - ----------- ---- -
    -- ------------------ -
      --------------- ------
      -----------------
    -
  -
  ------ ----
-
----- --- - --- -- -- -- -- -- ---
------------------------- -- --- -- -- -- --

优点:可以去重任何类型的元素。

缺点:性能较差,在数组比较大时会有性能问题。

使用场景:适用于基本数据类型和对象类型的数组去重。

5. 对象属性法

利用对象属性的唯一性,遍历数组,将每个元素作为对象属性名和属性值存储到一个新对象中,如果已存在该属性,则说明该元素在之前已经出现过。

-------- ----------- -
  ----- ---

- ---------------------------------------------------------- --------
-------------------------------------------------------------------------------------