JavaScript中数组去重的5种方法

yizhihongxing

“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日

相关文章

  • javascript实现获取指定精度的上传文件的大小简单实例

    本文将详细讲解如何使用JavaScript来获取指定精度的上传文件大小,并提供两个简单实例。 一、前言 在进行文件上传操作时,我们需要获取所上传文件的大小。但是,通常文件大小的数据单位都是以字节(Byte),而不是以KB、MB、GB等常用单位显示,这就需要我们在获取文件大小时,对其进行一定的转换和格式化。本文将向大家介绍一种获取文件大小的简单实现方法。 二、…

    JavaScript 2023年5月27日
    00
  • js下写一个事件队列操作函数

    下面是详细讲解“js下写一个事件队列操作函数”的完整攻略。 什么是事件队列? 事件队列是 JavaScript 中用于管理异步任务的机制。异步任务例如 Ajax 请求、setTimeout、setInterval 等,这些任务会在一个单独的线程中执行,不会与页面渲染等同步任务同时进行,因此对于编写高效、优化的 JavaScript 代码十分重要。 编写一个事…

    JavaScript 2023年5月28日
    00
  • js调试系列 初识控制台

    JS调试系列——初识控制台 什么是控制台 控制台是浏览器提供的调试工具,可以用来查看JavaScript代码的运行情况,如代码执行顺序,变量的值等。控制台可以输出信息,查看调用堆栈,进行代码地图等操作。Chrome浏览器的控制台是最为强大的。 打开控制台 在Chrome浏览器中,可以通过快捷键 Ctrl + Shift + J 打开控制台。也可以右键页面空白…

    JavaScript 2023年5月27日
    00
  • 如何写出优雅的JS 代码

    关于如何写出优雅的JS代码,以下是一些攻略: 1. 编写具有可读性的代码 编写具有可读性的代码是编写优雅代码的第一步。可读性是代码的口号。最好的方式是编写简洁、清晰和易于理解的代码。以下是几个技巧来实现具有可读性的代码: 有意义的变量和函数名称; 水平缩进和统一使用制表符或空格; 使用大括号来显式地表示代码块; 适当注释代码的用途。 具有可读性的代码有以下的…

    JavaScript 2023年5月27日
    00
  • JavaScript中常见陷阱小结

    请跟我一起详细了解JavaScript中的常见陷阱。 1. JavaScript中的类型转换陷阱 在JavaScript中,类型转换可能会导致一些令人困惑的结果。以下是一些常见的类型转换陷阱: 1.1 字符串和数字的陷阱 在JavaScript中,当字符串和数字进行相加时,会将字符串转换为数字并执行加法运算。但是,如果字符串中包含非数字字符,则会将其转换为N…

    JavaScript 2023年6月10日
    00
  • 基于javascript中的typeof和类型判断(详解)

    基于Javascript中的typeof和类型判断(详解) typeof typeof 运算符可以用来判断一个变量的数据类型,语法如下: typeof operand 其中 operand 是需要判断的变量或值。typeof 运算符会返回以下几种类型的字符串值: “undefined”:如果 operand 未定义或未声明 “boolean”:如果 oper…

    JavaScript 2023年5月19日
    00
  • 详解VueRouter 路由

    详解 VueRouter 路由 VueRouter 是 Vue.js 的官方路由管理器,它可以将不同的 URL 地址映射到不同的组件,并且在组件之间进行快速切换和传递数据。在本文中,我们将详细讲解 VueRouter 的使用方法,包括安装、基本用法、动态路由、嵌套路由等内容。 安装 安装 VueRouter 非常简单,只需要在终端中运行以下命令: npm i…

    JavaScript 2023年6月11日
    00
  • 一篇文章弄懂js中的typeof用法

    一篇文章弄懂 JS 中的 typeof 用法 typeof 是 JavaScript 中的一个关键字,用于确定一个值的数据类型。如今,在 JavaScript 中,由于一些语言习惯的原因,被称为“类型”或“类型操作符”。了解 typeof 的使用方法对于学习和理解 JavaScript 语言非常重要。 使用 typeof 的基本语法 语法:typeof op…

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