javascript数组去重的方法汇总

yizhihongxing

针对“javascript数组去重的方法汇总”的话题,我将为您提供完整的攻略,并给出两条示例说明。

一、问题背景

在javascript开发中,很常见的问题是如何从一个数组中找出不重复的数据。数组去重在实际开发中非常有用,例如:从数据库中查询数据后想要去除相同项展示给用户,或者需要合并两个数组并去除重复项。本文将为大家总结一下常用的去重方法。

二、方法汇总

1.使用Set

ES6中提供了一种新的数据结构Set,其中属性值唯一,可以很方便地实现数组去重。具体代码如下:

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

2.使用数组遍历

使用数组的indexOf()方法或者ES6的includes()方法进行遍历,遇到重复的删除此项。具体代码如下:

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

3.使用对象键值对

遍历数组,以元素值为对象的键值对应到对象中,如对象存在该键,则说明重复,否则将该键值对应到对象中。最后返回键值数组即可。具体代码如下:

let arr = [1,2,3,4,5,5,6,6,7];
function unique(arr) {
    let obj = {};
    let newArr = [];
    for(let i=0;i<arr.length;i++) {
        if(!obj[arr[i]]) {
            obj[arr[i]] = true;
            newArr.push(arr[i]);
        }
    }
    return newArr;
}
console.log(unique(arr)); //[1, 2, 3, 4, 5, 6, 7]

4.使用reduce函数

使用reduce函数,对出现过的元素存到obj中,并返回不重复的元素到newArr中。具体代码如下:

let arr = [1,2,3,4,5,5,6,6,7];
function unique(arr) {
    let newArr = arr.reduce((prev,cur) => {
        if(!prev.includes(cur)) {
            prev.push(cur);
        }
        return prev;
    },[]);
    return newArr;
}
console.log(unique(arr)); //[1, 2, 3, 4, 5, 6, 7]

三、总结

本文介绍了javascript数组去重的四种方法:使用Set,使用数组遍历,使用对象键值对,使用reduce函数。具体使用哪种方法,取决于情况和个人喜好。

以上就是本文的内容,希望能够对您有所帮助!

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

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

相关文章

  • javascript中Object使用详解

    Javascript中Object使用详解 简介 在Javascript中,Object是所有类的根源,几乎所有的对象都是Object的实例,Object可以看做是Javascript中所有类中共有的属性和方法的集合。 在本文中,我们将详细介绍在Javascript中如何使用Object。 基本语法 创建Object有两种方式:使用Object构造函数或使用…

    JavaScript 2023年5月27日
    00
  • js对象的读取速度实例详解

    关于“js对象的读取速度实例详解”,我会给出完整的攻略,以下是具体的内容: 1. 什么是js对象 JS对象是指在JS中可以通过{}或者new Object()定义出的对象,它是一个无序属性的集合,每个属性都是由属性名和属性值所组成。其中,属性名可以是字符串或者Symbol类型,属性值可以是任何JS数据类型。 2. js对象的读取速度 在JS编程中,对象的读取…

    JavaScript 2023年6月10日
    00
  • js变换显示图片的实例

    下面我来为您详细讲解“js变换显示图片的实例”的完整攻略: 1. 具体实现步骤 1.1 前置条件 在页面上需要添加一个<img>标签用于显示图片,以及若干个用于触发变换的元素(按钮、超链接等)。 1.2 HTML结构 在<img>标签中需要设置好初始的图片路径,如下所示: <img id="img1" src…

    JavaScript 2023年6月11日
    00
  • JavaScript日期对象(Date)基本用法示例

    来了解一下JavaScript日期对象(Date)的基本用法吧! 什么是JavaScript日期对象(Date) JavaScript日期对象(Date)是JavaScript内置对象,用于处理与日期和时间相关的信息。我们可以使用JavaScript日期对象(Date)来获取当前时间、日期、计算时间间隔、格式化日期时间等。 创建JavaScript日期对象(…

    JavaScript 2023年5月27日
    00
  • Asp.Net中避免重复提交和弹出提示框的实例代码

    在ASP.NET中避免重复提交和弹出提示框是开发Web应用程序时很重要的一部分。下面是一个实例代码,用于防止重复提交表单,并弹出异常提示框。 避免表单重复提交 在ASP.NET中,为了防止表单重复提交,我们可以使用以下两种方式: 1. 禁用页面上提交按钮 在单击按钮时,将其设置为禁用状态。在以前无法恢复之前,可以使其显示Progress GIF图像,以便用户…

    JavaScript 2023年6月11日
    00
  • JavaScript中解决多浏览器兼容性23个问题的快速解决方法

    作为网站作者,我们需要考虑到不同浏览器的兼容性问题。在 JavaScript 中,不同浏览器的兼容性问题比较常见,为了解决这些问题,我们需要使用一些常见的解决方法。下面是解决 JavaScript 中多浏览器兼容性问题的完整攻略: 1. 选择合适的文档模式 文档模式用于指定浏览器在解析网页时所采用的渲染模式,包括“标准模式”和“兼容模式”。在 HTML5 中…

    JavaScript 2023年6月10日
    00
  • JavaScript对象封装的简单实现方法(3种方法)

    下面将详细讲解“JavaScript对象封装的简单实现方法(3种方法)”的完整攻略。 什么是JavaScript对象封装? JavaScript对象封装是指使用面向对象编程的思想,将数据和方法封装在一起,通过暴露公共方法的方式来实现数据的访问和操作保护。 实现JavaScript对象封装的三种方法 1. 利用构造函数实现对象封装 构造函数是一种用于创建对象的…

    JavaScript 2023年5月27日
    00
  • JavaScript的引用数据类型你了解多少

    引用数据类型是 JavaScript 中的一种数据类型,通常用于存储复杂的数据对象,比如数组、对象等。与之相对的是基本数据类型,如数字、字符串等。本篇攻略将详细讲解 JavaScript 的引用数据类型,包括什么是引用数据类型、与基本数据类型的区别、引用类型的常见用途。 什么是引用数据类型? 引用数据类型是一种数据类型,可以存储对象、数组和函数等复杂数据类型…

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