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日

相关文章

  • 零基础轻松学JavaScript闭包

    零基础轻松学JavaScript闭包 什么是闭包 闭包的定义 闭包是指那些能够访问自由变量的函数。自由变量是指在函数中使用,但既不是函数参数,也不是函数的局部变量的变量。 闭包 = 函数 + 函数能够访问的自由变量 闭包的作用 闭包主要有以下两个作用: 延长外部作用域中变量的声明周期。当一个函数返回了一个内部函数后,内部函数会继续保持对外部函数的作用域的引用…

    JavaScript 2023年6月10日
    00
  • JavaScript数据结构与算法之队列原理与用法实例详解

    JavaScript数据结构与算法之队列原理与用法实例详解 什么是队列? 队列是一种数据结构,可以用来存储一系列元素,支持在队列尾部插入元素,在队列头部删除元素的操作。这种数据结构的特点是:先进先出(First-In-First-Out,简称FIFO),即最先插入队列的元素,也会最先从队列中被删除。 队列的实现 队列可以用数组或链表来实现,这里我们以数组为例…

    JavaScript 2023年5月28日
    00
  • JS关于刷新页面的相关总结

    JS关于刷新页面的相关总结 在前端开发中,页面刷新是一项非常重要的操作。在JavaScript中,可以通过不同的方式来实现页面的刷新,本篇文章将对JS关于刷新页面的相关知识进行总结。 1. location.reload() location.reload() 方法用于重新加载当前文档。该方法会重新向服务器发送请求,从而获取最新的内容,刷新页面。下面是一个简…

    JavaScript 2023年6月11日
    00
  • JavaScript 详解缓动动画的封装与使用

    JavaScript 详解缓动动画的封装与使用 概述 缓动动画是一种常见的动画效果,它在动画运行初期速度较快,在结束时速度逐渐减慢,运动距离也逐渐减小,这种动画效果更符合人眼的视觉特性,所以受到广泛的应用。 在 JavaScript 中,我们可以通过封装函数来实现缓动动画,下面我们就来详细讲解一下。 实现思路 首先,我们需要知道缓动动画的原理,即在动画过程中…

    JavaScript 2023年6月10日
    00
  • jquery实现浮动在网页右下角的彩票开奖公告窗口代码

    下面我将详细讲解“jquery实现浮动在网页右下角的彩票开奖公告窗口代码”的攻略。 基本思路 我们的目标是实现一个浮动在网页右下角的彩票开奖公告窗口。具体实现思路如下: 在页面底部右下角添加一个固定宽度和高度的 div 元素,设置其 position 属性为 fixed,bottom 和 right 属性为 0,这样就可以让该元素始终浮动在页面的右下角。 在…

    JavaScript 2023年6月11日
    00
  • javascript asp教程第六课– response方法

    下面是详细讲解“javascript asp教程第六课– response方法”的完整攻略: 一、什么是response对象? 在 ASP 中,response 对象代表向客户端发送输出时使用的方法和属性。它允许 ASP 页面向客户端浏览器发送文本、HTML、XML 或任何其他类型的数据。下面是response对象的一些常用方法: Write(strTex…

    JavaScript 2023年5月28日
    00
  • 原生JS实现前端本地文件上传

    当我们需要在前端实现文件上传的功能时,可以使用原生的JavaScript代码来实现。下面是一个完整的攻略,包含了前端上传文件需要用到的一些知识点。 1. 获取文件上传的节点 要上传文件,需要在页面上放置一个文件上传的节点,通常使用HTML中的<input type=”file” />元素。获取节点的方式可以使用原生JavaScript中的 get…

    JavaScript 2023年5月27日
    00
  • 深入理解前端字节二进制知识以及相关API

    当前,前端对二进制数据有许多的API可以使用,这丰富了前端对文件数据的处理能力,有了这些能力,就能够对图片等文件的数据进行各种处理。本文将着重介绍一些前端二进制数据处理相关的API知识,如Blob、File、FileReader、ArrayBuffer、TypeArray、DataView等等。 字节 在介绍各种API之前,我们需要先了解下和字节有关的知识。…

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