在数组中获取所有非唯一值(即:重复/多个事件)

在数组中获取所有非唯一值

在前端开发中,我们常常需要对数据进行统计和分析。其中,一个常见的需求是获取数组中所有的非唯一值,也就是包含重复元素的值。本文将介绍如何使用 JavaScript 实现这个功能。

方法一:使用 for 循环和 indexOf 方法

我们可以使用 for 循环遍历数组,并使用 indexOf 方法查找数组中是否存在该元素。如果该元素不是第一个出现的位置,则说明它是一个非唯一值。代码示例如下:

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

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

上面的代码使用了两个 indexOf 方法,时间复杂度较高。如果数组中的元素数量较大,建议使用方法二或方法三。

方法二:使用 Set 和 filter 方法

我们可以使用 Set 对象过滤重复元素,并使用 filter 方法筛选非唯一值。具体操作如下:

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

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

方法三:使用 Map 和 filter 方法

我们可以使用 Map 对象统计元素出现次数,并使用 filter 方法筛选非唯一值。具体操作如下:

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

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

以上就是在数组中获取所有非唯一值的三种实现方式。在实际项目中,应根据数据量和性能需求选择最优的方法。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/8560