当前位置:首页 > 技术分析 > 正文内容

JavaScript去除数组重复元素的几种方法

ruisui885个月前 (02-03)技术分析27

数组去重在前端开发中非常有用,在很多业务场景中都有需要。我们都知道JavaScript实现数组去重的方式有很多,今天就汇总一下这些方法,方便大家比较选用。


1.使用Set数据结构

set是ES6新增的数据结构,特点就是集合内没有重复元素。正好可以利用这一特性实现数组去重。

const source = [1,1,2,2,3,3,4,4,5,5];

const unique = [...new Set(source)];

console.log(unique); // [1,2,3,4,5]

将Set转为数组,除了使用上面的展开操作符,也可以使用 Array.form() 方法。

这个方法写法简洁,是目前较常使用的数组去重方式。


2.比较索引位置是否一致

const source = [1,1,2,2,3,3,4,4,5,5];

const unique = source.filter((num,index) => {
  return source.indexOf(num) === index;
});

console.log(unique); // [1,2,3,4,5]

这个方法的核心是比较元素位置和索引位置是否一致。因为 indexOf 只会返回第一个匹配元素的索引,如果有重复元素,第二个元素的索引必然和 indexOf 返回值不相等。


3.使用 includes 判断

const source = [1,1,2,2,3,3,4,4,5,5];
const unique = [];

for (const item of source) {
  if (!unique.includes(item)) {
    unique.push(item)
  }
}

console.log(unique); // [1,2,3,4,5]

这种办法很好理解,遍历元素,判断元素是否在新数组中。如果不在新数组中,则说明是非重复元素,添加到新数组中。

遍历的方式可以有多种,for forEach 或者数组的其他方法都可以。

关于数组去重你还有什么方法,欢迎留言分享~

欢迎点赞,评论,转发 ~

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/703.html

分享给朋友:

“JavaScript去除数组重复元素的几种方法” 的相关文章

vue 3 学习笔记 (八)——provide 和 inject 用法及原理

在父子组件传递数据时,通常使用的是 props 和 emit,父传子时,使用的是 props,如果是父组件传孙组件时,就需要先传给子组件,子组件再传给孙组件,如果多个子组件或多个孙组件使用时,就需要传很多次,会很麻烦。像这种情况,可以使用 provide 和 inject 解决这种问题,不论组件嵌套...

国产操作系统上Vim的详解03--安装和使用插件 | 统信 | 麒麟 | 中科方德

原文链接:国产操作系统上Vim的详解03--使用Vundle插件管理器来安装和使用插件 | 统信 | 麒麟 | 中科方德Hello,大家好啊!今天给大家带来一篇在国产操作系统上使用Vundle插件管理器来安装和使用Vim插件的详解文章。Vundle是Vim的一款强大的插件管理器,可以帮助我们轻松地安...

30 个纯 HTML5 实现的游戏

浏览器和 JavaScript 的功能逐年不断的变强变大。曾几何时,任何类型的游戏都需要Flash。但随着 HTML5 发展,HTML5 + WebGL 游戏式就慢慢占领着这个舞台。以下是30款流行的游戏,它们可以在所有现代浏览器中运行,并且只使用web技术构建。1. HexGL地址:http://...

2024最新版:前端性能优化方案汇总

前端训练营:1v1私教,终身辅导计划,帮你拿到满意的 offer。 已帮助数百位同学拿到了中大厂 offer。欢迎来撩~~~~~~~~Hello,大家好,我是 Sunday。前端性能优化一直是很多同学非常关注的问题,在日常的面试中也是经常会被问到的点。所以今天咱们就花一点时间来了解一下2024最新的...

别让“跑焦”毁所有!仅需这一项设置,即可显著改善镜头对焦精度

我常常会收到一些摄影爱好者的私信,也一直在努力的帮助大家解决更多摄影中常见问题。在我收到的所有问题中。有一个问题是最麻烦的,那就是“为什么我的图像看起来模糊?”。这个问题几乎每个人都遇到过,究其原因可以说是多种多样相对复杂。起初我一直认为是对焦问题所导致,也就有了我之前所写的“后按对焦”以及“对焦模...

最快清除数组空值?分享 1 段优质 JS 代码片段!

本内容首发于工粽号:程序员大澈,每日分享一段优质代码片段,欢迎关注和投稿!大家好,我是大澈!本文约 600+ 字,整篇阅读约需 1 分钟。今天分享一段优质 JS 代码片段,用最简洁的代码清除了数组中的空值。老规矩,先阅读代码片段并思考,再看代码解析再思考,最后评论区留下你的见解!const arr...