js数组去重的方法总结

针对“js数组去重的方法总结”这个主题,我将为大家详细讲解一些js数组去重的方法。

方法一:使用Set去重

Set 是 ES6 特性之一,可以用来去重。代码示例如下:

let arr = [1, 2, 3, 3, 4, 5, 5];
let uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4, 5]

解释:使用 new Set() 去除数组中的重复元素并将其赋值给一个新的 Set 对象,然后将该对象转换为数组。

方法二:使用 filter 方法

使用 filter 方法可快速去除重复元素,代码示例如下:

let arr = [1, 2, 3, 3, 4, 5, 5];
let uniqueArr = arr.filter((item, index, array) => array.indexOf(item) === index); 
console.log(uniqueArr); // [1, 2, 3, 4, 5]

解释:使用 indexOf 方法查找元素在数组中的第一个位置,如果当前位置等于该元素的位置,则说明该元素是第一次出现,否则就是重复元素,这时候可以使用 filter 方法去掉。

除了以上两种方法外,还有一些其它的方法,如使用 Map,使用 reduce,使用 forEach 等。

方法三:使用 Map

使用 Map 对象去重的方法较为简单,代码示例如下:

let arr = [1, 2, 3, 3, 4, 5, 5];
let map = new Map();
let uniqueArr = [];
for (let i = 0; i < arr.length; i++) {
  if(!map.has(arr[i])){
    map.set(arr[i], true);
    uniqueArr.push(arr[i]);
  }
}
console.log(uniqueArr); // [1, 2, 3, 4, 5]

解释:使用 Map 对象的键名去重,在循环中使用 has 方法判断是否已经存在,如果不存在则向数组中 push 该元素的值。

方法四:使用 reduce

使用 reduce 迭代器可快速去重,代码示例如下:

let arr = [1, 2, 3, 3, 4, 5, 5];
let uniqueArr = arr.reduce((prev, cur) => prev.includes(cur) ? prev : [...prev, cur], []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]

解释:使用 reduce 方法循环数组,prev 表示上一次迭代的结果值,cur 表示当前元素的值,通过判断 prev 数组中是否包含 cur,如果包含说明已经存在该元素,则直接返回 prev 数组,如果不包含则将该元素 push 到 prev 数组中以完成去重。

以上就是我总结的 js 数组去重的方法,希望对大家有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js数组去重的方法总结 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JavaScript实现按键精灵的原理分析

    JavaScript实现按键精灵的原理分析 按键精灵是一种自动化测试工具,可以通过记录和回放用户在网页上的操作,以缩短测试时间和提高测试效率。JavaScript可以实现按键精灵的功能,下面是具体的攻略。 一、原理分析 按键精灵的功能实现主要需要以下三个步骤: 记录用户的操作。当用户在网页上进行操作时,通过JavaScript代码记录下来,包括点击、输入和滚…

    JavaScript 2023年6月11日
    00
  • JS开发自己的类库实例分析

    JS开发自己的类库需要经过以下步骤: 步骤一:确定类库的功能 在开发类库之前,需要确定我们想要实现的功能。这些功能需要与当前市场上主流的类库有一定的区别,也可以是现有类库中不足之处的补充。例如,可以考虑开发一个支持异步请求的类库,或者是在表单验证方面做出针对性的改进。 步骤二:编写代码 确定了功能之后,就可以开始编写代码了。在编写代码的过程中,需要注意以下几…

    JavaScript 2023年5月28日
    00
  • 浅谈JavaScript的对象类型之function

    下面为你详细讲解JavaScript的对象类型之function的攻略。 什么是function对象类型 JavaScript中的函数是一种特殊的对象类型,也就是function对象类型。函数对象拥有一些独特的方法和属性,使得它们比普通对象更加强大和灵活。 创建function对象 声明式函数 创建一个function对象最简单的方法就是通过声明式函数的方式…

    JavaScript 2023年5月27日
    00
  • 微信小程序 生命周期和页面的生命周期详细介绍

    下面详细讲解一下微信小程序的生命周期和页面的生命周期: 微信小程序生命周期介绍 微信小程序生命周期分为两个部分:全局生命周期和页面生命周期。全局生命周期是指在整个小程序中被执行的方法,而页面生命周期则是指在页面中被执行的方法。 全局生命周期 全局生命周期包含以下方法: 1. onLaunch(options) 在小程序初始化完成时执行,只会执行一次。 参数说…

    JavaScript 2023年6月11日
    00
  • JS实现获取当前URL和来源URL的方法

    获取当前URL和来源URL是一项常见的技术需求,本文将介绍JS实现该功能的方法。 获取当前URL的方法 获取当前URL可以使用window.location属性,该属性包含了URL的各种组成部分,如协议、主机名、路径等。示例代码如下: var currentUrl = window.location.href; console.log(currentUrl)…

    JavaScript 2023年5月28日
    00
  • JavaScript立即执行函数与函数劫持的作用

    JavaScript立即执行函数与函数劫持是常用的一些函数技巧,可以用来实现模块化编程、实现私有变量等功能。下面我会详细讲解这两个函数技巧的使用方法及其作用。 JavaScript立即执行函数的定义及作用 JavaScript立即执行函数是指在定义之后立即执行的函数。其基本语法为: (function() { // function body })(); 这…

    JavaScript 2023年5月27日
    00
  • JavaScript中使用concat()方法拼接字符串的教程

    当我们需要在JavaScript中拼接多个字符串时,可以使用concat()方法。该方法将传递给它的字符串与原始字符串连接起来,并返回新的字符串,而不改变原始字符串。下面是使用concat()方法拼接字符串的完整攻略: 使用concat()方法拼接字符串的步骤: 步骤1:创建要拼接的字符串 在使用concat()方法之前,我们需要先定义要拼接的字符串。可以将…

    JavaScript 2023年5月28日
    00
  • 浅谈对于“不用setInterval,用setTimeout”的理解

    浅谈对于“不用setInterval,用setTimeout”的理解 对于JavaScript中定时器的使用,我们常常会听到这样一种建议:不要使用setInterval,而应该使用setTimeout。 为什么会这样说呢?这是因为使用setInterval存在一些风险,比如说多个定时器的执行时间可能会出现重叠,导致程序出现不可预料的异常。 相反,使用setT…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部