JavaScript数组去重的6个方法

下面是对于“JavaScript数组去重的6个方法”的完整攻略。

方法一:Set去重

使用ES6的Set,可以直接将数组转化为Set集合,再转化回数组的时候就自然地去重了。

const arr = [1,2,3,1,2,4];
const newArr = [...new Set(arr)];
console.log(newArr); // [1,2,3,4]

方法二:indexOf去重

遍历数组,每个元素与新数组中的元素比较,如果不在新数组中,就将其加入新数组中。

const arr = [1,2,3,1,2,4];
const newArr = [];
for(let i = 0; i < arr.length; i++){
  if(newArr.indexOf(arr[i]) === -1){
    newArr.push(arr[i]);
  }
}
console.log(newArr); // [1,2,3,4]

方法三:foreach和includes去重

遍历数组,对于每个元素进行判断,如果不在新数组中,就将其加入新数组中。

const arr = [1,2,3,1,2,4];
const newArr = [];
arr.forEach(item => {
  if(!newArr.includes(item)){
    newArr.push(item);
  }
});
console.log(newArr); // [1,2,3,4]

方法四:filter去重

使用ES6的filter方法,遍历数组,将满足条件的元素加入新数组中。

const arr = [1,2,3,1,2,4];
const newArr = arr.filter((item,index)=>{
  return arr.indexOf(item) === index;
});
console.log(newArr); // [1,2,3,4]

方法五:对象键值对去重

将数组中的每个元素作为对象的键(key)和值(value)值,由于对象的键名不能重复,会自动去重。

const arr = [1,2,3,1,2,4];
const obj = {};
const newArr = [];
arr.forEach(item => {
  if(!obj[item]){
    obj[item] = true;
    newArr.push(item);
  }
})
console.log(newArr); // [1,2,3,4]

方法六:reduce去重

使用ES6的reduce方法,遍历数组,将满足条件的元素加入新数组中。

const arr = [1,2,3,1,2,4];
const newArr = arr.reduce((pre,cur)=>{
  if(!pre.includes(cur)){
    pre.push(cur);
  }
  return pre;
},[]);
console.log(newArr); // [1,2,3,4]

以上就是JavaScript数组去重的六个方法,希望能对大家有所帮助。

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

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

相关文章

  • JS判断字符串变量是否含有某个字串的实现方法

    JS判断字符串变量是否含有某个字串的实现方法可以使用JS字符串对象提供的indexOf()方法。 indexOf()方法返回被查找字符串的起始位置,如果没有找到则返回-1。通过这个方法,可以判断某个字符串是否在原字符串中存在,从而实现判断字符串变量是否含有某个字串。 以下是具体的实现方法: 方法一:使用indexOf()方法 语法格式: string.ind…

    JavaScript 2023年5月28日
    00
  • JavaScript高级程序设计 读书笔记之十 本地对象Date日期

    《JavaScript高级程序设计》第十章讲解了JavaScript中本地对象Date日期,是JavaScript中处理日期和时间的重要工具。下面是对这一章节的完整攻略。 一、日期时间的创建和实例化 在JavaScript中,可以使用new Date()创建一个日期对象。它会默认将当前时间作为日期时间的实例。也可以传入一个表示日期的字符串或者一个表示日期时间…

    JavaScript 2023年6月10日
    00
  • Mysql内储存JSON字符串根据条件进行查询

    MySQL中可以使用JSON值类型存储JSON格式的数据。而且MySQL也提供了一系列的JSON函数和操作符来方便地处理JSON值类型的数据。以下是使用MySQL内储存JSON字符串根据条件进行查询的步骤和实例说明。 步骤 创建一个表格 在MySQL数据库中,我们可以用如下语句创建一个表格: sql CREATE TABLE `students` ( `id…

    JavaScript 2023年6月11日
    00
  • Dom-api MutationObserver使用方法详解

    Dom-api MutationObserver使用方法详解 概述 MutationObserver是Web API中的一个对象,用于监视DOM树中发生的变化,并提供回调函数,用于在变化发生时执行相应逻辑。 基本用法 MutationObserver的基本用法如下 // 创建一个观察器实例并指定回调函数 const observer = new Mutati…

    JavaScript 2023年6月10日
    00
  • vue element-ui实现动态面包屑导航

    一、概述 面包屑导航是指网站或应用程序主导航之外的一种辅助性导航元素。随着单页应用(SPA)的普及,动态面包屑导航也变得越来越常见。Vue Element-UI提供了很好的组件支持,可以轻松实现动态面包屑导航的功能。 二、步骤 安装Vue和Element-UI 在Vue Element-UI中使用动态面包屑导航功能,需要先安装Vue和Element-UI。可…

    JavaScript 2023年6月10日
    00
  • canvas实现粒子时钟效果

    下面是“canvas实现粒子时钟效果”的完整攻略: 步骤一:设置画布 首先需要在HTML文件中添加一个canvas标签,并设置其宽高。如下面的示例代码所示: <canvas id="canvas" width="600" height="600"></canvas> 接着,在…

    JavaScript 2023年6月11日
    00
  • 我做了一个 VSCode 插件版的 ChatGPT

    大家好,我是风筝 其实很早之前就想学学 VSCode 插件开发了,但是又不知道做什么,加上我这半吊子前端水平,迟迟没有动手。 最近 ChatGPT 火的一塌糊涂,我也一直在用,真的非常好用,有些问题之前需要 Google 搜索,现在用 ChatGPT 基本上都能直接解决,效率提升了不少。 但是吧,浏览器和 IDE 来回切换又很麻烦,所以我灵机一动,那就开发个…

    JavaScript 2023年5月11日
    00
  • 简单实现ajax获取跨域数据

    实现ajax跨域获取数据在Web开发中非常常见,由于浏览器的同源策略,直接在页面中通过ajax获取跨域数据是不允许的,但是我们可以通过JSONP和CORS两种方式来实现跨域数据获取。 JSONP JSONP(JSON with Padding)是一种基于JSON的数据交互方式,它允许我们通过在页面上动态创建标签的方式来实现跨域数据获取。JSONP的原理是利用…

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