JavaScript数组去重的6个方法

yizhihongxing

下面是对于“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脚本的方法分为两种,分别是浏览器内置的调试器和利用第三方工具进行调试。 浏览器内置调试器 1. 使用console.log()调试 在JS代码中插入console.log()语句,输出相关变量和信息以确认代码是否按预期执行。使用该方法的优点是简单易用,缺点是调试过程相对繁琐,需要不断插入、删除console语句。示例代码如下: var nu…

    JavaScript 2023年5月27日
    00
  • js变量以及其作用域详解

    下面是“js变量以及其作用域详解”的攻略: 1. js变量 1.1 变量的概念 变量是存储数据值的容器,它可以被任何程序访问和改变。在JavaScript中,你可以声明变量并附加特定类型的数据值,然后在程序中使用该值。 JavaScript中的变量是弱类型的,这意味着变量类型不是固定的,可以在程序中随时更改。 1.2 变量的声明与赋值 在JavaScript…

    JavaScript 2023年5月18日
    00
  • javascript控制台详解

    Javascript控制台详解 什么是Javascript控制台 Javascript控制台是浏览器(如Chrome、Firefox、Safari等)自带的开发工具,它可以让开发者在开发和调试网页时,查看和修改网页的代码和样式,并且可以运行Javascript代码,方便开发者定位和解决问题。 如何打开Javascript控制台 打开Javascript控制台…

    JavaScript 2023年5月17日
    00
  • javascript中break,continue和return语句用法小结

    接下来我将为你详细讲解“JavaScript中break,continue和return语句用法小结”。 1. break语句 在循环结构中,break语句可以让程序停止当前循环并跳出循环结构。在for循环和while循环中,break语句的使用方法相同。 示例1 下面的示例演示如何在for循环中使用break语句,当循环到i为2时,停止循环并跳出循环结构。…

    JavaScript 2023年5月28日
    00
  • 详细教你微信公众号正文页SVG交互开发技巧

    详细教你微信公众号正文页SVG交互开发技巧 介绍 在微信公众号开发中,SVG(Scalable Vector Graphics)是很方便的一种图形格式,可以实现图片的高清缩放以及交互式效果。本文将介绍如何利用SVG开发微信公众号正文页的交互功能。 使用技巧 1. SVG基础知识 SVG是一种使用XML描述2D图形的语言,它定义了诸如图形、文本、滤镜和动画等可…

    JavaScript 2023年6月10日
    00
  • 10个最受欢迎的 JavaScript框架(推荐)

    10个最受欢迎的 JavaScript框架(推荐)攻略 1. 什么是JavaScript框架? JavaScript框架是一种将一些较为复杂的任务给封装在一起,并提供一些便利性的工具的集合。JavaScript框架有很多,而每个框架都有自己独特的特性,可以根据项目需要进行选择。 2. 为什么需要用JavaScript框架? JavaScript框架有很多功能…

    JavaScript 2023年5月18日
    00
  • layui使用form表单实现post请求页面跳转的方法

    当我们使用layui时,可以通过form表单的方式来实现post请求页面跳转。接下来将介绍layui使用form表单实现post请求页面跳转的方法的攻略。 步骤一:在页面中引入layui模块,引入form模块 <!– 引入layui –> <script src="path/layui/layui.js">&l…

    JavaScript 2023年6月10日
    00
  • 基于EasyUI的基础之上实现树形功能菜单

    下面详细讲解“基于EasyUI的基础之上实现树形功能菜单”的完整攻略。 1.概述 树形功能菜单是一个非常常见的Web应用程序功能之一。本文将介绍如何使用EasyUI框架实现树形功能菜单。EasyUI是一个强大,易于使用的Web应用程序JavaScript UI库。它提供了一组常见的UI控件,如对话框,面板,按钮,表格等,以帮助开发人员在Web应用程序中快速创…

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