JavaScript中数组去重的5种方法

“JavaScript中数组去重的5种方法”是一个常见的问题,本文将详细讲解五种不同的去重方法。

方法一:使用ES6的Set

ES6中新增的Set是一种数据结构,可以用于存储任何类型的唯一值。我们可以使用Set去重一个数组,然后再将其转换为数组类型。

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

方法二:使用for循环

我们可以使用双层循环来遍历数组,将重复的元素移除。

let arr = [1, 2, 2, 3, 3, 4, 5];
let newArr = [];
for(let i=0;i<arr.length;i++){
    let exist = false;
    for(let j=0;j<newArr.length;j++){
        if(newArr[j] === arr[i]){
            exist = true;
            break;
        }
    }
    if(!exist){
        newArr.push(arr[i]);
    }
}
console.log(newArr); //[1, 2, 3, 4, 5]

方法三:使用indexOf()

使用indexOf()方法可以快速判断元素是否在数组中存在。

let arr = [1, 2, 2, 3, 3, 4, 5];
let 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, 5]

方法四:使用sort()

我们可以先使用sort()方法对数组进行排序,然后再遍历数组,将重复的元素移除。

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

方法五:使用reduce()

reduce()方法可以用于处理数组,将其简化为一个值。我们可以使用reduce()方法遍历数组,将重复的元素移除。

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

在这里,我们使用了 5 种不同的方法进行数组去重。根据实际需求,你可以选择任何一种去重方法。

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

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

相关文章

  • WEB开发之注册页面验证码倒计时代码的实现

    WEB开发之注册页面验证码倒计时代码的实现可以通过以下步骤完成。 1. HTML结构 首先,我们需要在HTML中添加一个用于显示倒计时的标签,并为获取验证码的按钮添加一个点击事件,并在点击事件中调用计时器函数。 示例代码: <div> <label for="phone">手机号码:</label> &…

    JavaScript 2023年6月10日
    00
  • 微信小程序收货地址API兼容低版本解决方法

    微信小程序收货地址API兼容低版本解决方法的攻略如下: 问题描述 随着微信的版本升级,小程序中的API也在不断更新。在微信版本7.0.0及以上,小程序新增了获取用户收货地址的API,可以直接调用wx.chooseAddress()方法获取用户的收货地址信息。但是,如果小程序运行的微信版本低于7.0.0,将会出现报错,导致无法获取收货地址信息。因此,需要兼容低…

    JavaScript 2023年6月11日
    00
  • 复制js对象方法(详解)

    复制JS对象是很常见的操作,但是需要注意的是,在JS中,对象是引用类型,因此直接复制对象会导致对象引用被复制,而不是对象本身。这里介绍几种复制JS对象的方法,包括深拷贝和浅拷贝。 浅拷贝 浅拷贝可以简单地理解为将对象的属性复制一份到新的对象中,但是属性值为对象的属性仍然是引用关系。 表达式“{…obj}” ES6中引入了表达式“{…obj}”,可以用…

    JavaScript 2023年5月27日
    00
  • javascript实现限制上传文件大小

    下面是实现限制上传文件大小的完整攻略。 步骤一:JS获取文件大小 首先,我们需要通过 JavaScript 获取上传的文件大小。可以通过以下代码来实现: // 选取上传文件的 input 元素 const fileInput = document.querySelector(‘input[type="file"]’); // 为 inpu…

    JavaScript 2023年6月11日
    00
  • 仅9张思维导图帮你轻松学习Javascript 就这么简单

    标题:使用思维导图轻松学习JavaScript 引言 JavaScript是Web前端开发的重要组成部分,也是现代web应用开发必备的技能之一。然而,JavaScript语言本身比较复杂,想要学习掌握JavaScript并不容易。本文借助思维导图的方式,帮助读者快速掌握JavaScript。 思维导图学习法 思维导图是常用的学习工具,它可以帮助人们快速理清知…

    JavaScript 2023年6月10日
    00
  • Json字符串转换为JS对象的高效方法实例

    下面是“Json字符串转换为JS对象的高效方法实例”的完整攻略: 1. 使用JSON.parse()方法 在JavaScript中,我们可以使用JSON.parse()方法将JSON字符串转换为JS对象。这个方法非常简单,只需要将JSON字符串作为参数传递进去,就可以得到对应的JS对象。 例如,假设我们有一个JSON字符串: var jsonString =…

    JavaScript 2023年5月27日
    00
  • JS模拟实现串行加法器

    JS模拟实现串行加法器的攻略分为以下几步: 1. 了解加法器的原理与特点 加法器是计算机中至关重要的数据处理器之一,它可以将两个或多个数字相加,可用于各种应用中,如计算机内存、操作数检查和基本算术运算。串行加法器是指一步一步实现加法计算,即从低位到高位逐步计算的加法器,特点是每位计算只相关前一个位置的进位,而后一位的进位则要待到下一次计算中。 2. 实现JS…

    JavaScript 2023年5月27日
    00
  • JavaScript Boolean 对象

    以下是关于JavaScript Boolean对象的完整攻略。 JavaScript Boolean对象 JavaScript Boolean对象是一个包装了布尔值的对象。该对象有两个值:true和false。在JavaScript中,布尔值通常用于条件语句和逻辑运算符中。 下面是一个使用Boolean对象的示例: var bool = new Boolea…

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