1分钟了解js中数组中去除重复值的几种方法
JavaScript 中数组去重是常见的操作,常用的几种方法如下:
双重循环法
这是一种简单直白的方法,对于每一个元素都遍历一遍数组,判断该元素是否重复,若重复则去掉。
function unique(arr) {
var len = arr.length;
for (var i = 0; i < len; i++) {
for (var j = i + 1; j < len; j++) {
if (arr[i] == arr[j]) {
arr.splice(j, 1);
len--;
j--;
}
}
}
return arr;
}
使用 ES6 Set
Set 是 ES6 版本新增的数据结构,它不允许存在重复的元素,可以很方便的去重。将数组转为 Set 对象后,再将其转回数组。
function unique(arr) {
return Array.from(new Set(arr));
}
使用 indexOf
这种方法是利用 indexOf 判断数组中是否存在该元素,若存在则添加到新的数组中,若不存在则不变,最后返回新的数组。
function unique(arr) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) == -1) {
newArr.push(arr[i]);
}
}
return newArr;
}
使用 includes
这种方法是 ES7 中新增的方法,类似于 indexOf,判断数组中是否存在该元素,若存在则添加到新的数组中,若不存在则不变,最后返回新的数组。
function unique(arr) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (!newArr.includes(arr[i])) {
newArr.push(arr[i]);
}
}
return newArr;
}
以上是常见的几种数组去重方法,因为每种方法都有其优缺点,需要根据实际情况进行选择。
猜你喜欢LIKE
相关推荐HOT
更多>>java中节点流与过滤流(处理流)的区别是什么?
Java中节点流和过滤流是JavaI/OAPI中的两个重要概念,它们是用于读写数据的核心组成部分。节点流和过滤流在JavaI/O流中的不同起作用的方式如下...详情>>
2023-06-05 08:57:00servlet底层原理是什么?
1、ServletAPI核心类与接口2、Servlet类处理请求的流程创建servlet类的步骤:创建一个命名为TestServlet继承javax.servlet.http.HttpServlet类详情>>
2023-05-30 10:41:22多线程的优势与劣势分别是什么?
多线程是指在同一个程序中,同时运行多个线程,每个线程都可以独立执行不同的任务,相互之间不会干扰。多线程的优势和劣势如下:优势:提高程序...详情>>
2023-05-30 10:32:12设计模式之生产者与消费者的代码实现
本文主要讲述生产者和消费者模式,文中会使用通俗易懂的案例,使你更好地学习本章知识点并理解原理,做到有道无术。什么是生产者和消费者模式生...详情>>
2023-05-30 10:25:46热门推荐
1分钟了解js中数组中去除重复值的几种方法
沸java中节点流与过滤流(处理流)的区别是什么?
热软件设计模式分类有哪些分类?
热如何实现Spring+SpringMVC+MyBatis框架整合
新如何进行mysql数据备份?
什么是servlet的生命周期?servlet请求处理流程是怎样的?
servlet底层原理是什么?
怎样编写java程序?
多线程的优势与劣势分别是什么?
ssm框架的作用与原理是什么?
设计模式之生产者与消费者的代码实现
接口和抽象类有什么区别?4个方面对比
从零开始学Java之interface接口
从零开始学Java之Java中的内部类是怎么回事?