数组去重
Posted 好_快
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组去重相关的知识,希望对你有一定的参考价值。
第一类 for 循环
/* 双重for循环去重*/
function func0(array)
const newArray = [];
for (let i = 0; i < array.length; i++)
//1、第一层循环取出目标数组中的每一个元素itemOld
const itemOld = array[i];
let contain = false;
for (let j = 0; j < newArray.length; j++)
//2、第二层循环取出新数组中的每一个元素itemNew
const itemNew = newArray[j];
//3、每个itemOld和每个itemNew逐一比较
if (itemOld === itemNew)
//4、如果相等则存在,中断第二层循环
contain = true;
break;
//5、如果第二层循环执行完都没有中断则说明该元素不存在,则加入数组
if (contain === false)
newArray.push(itemOld);
return newArray;
第二类 数组方法
2.1 indexOf
function func1(array)
const newArray = [];
array.forEach((item) =>
if (newArray.indexOf(item) === -1)
newArray.push(item);
);
return newArray;
2.2 includes
function func2(array)
const newArray = [];
array.forEach((item) =>
if (newArray.includes(item) === false)
newArray.push(item);
);
return newArray;
第三类 借助新的数据结构
3.1 利用对象key唯一去重
function func3(array)
const obj = [];
array.forEach((item) =>
obj[item] = item;
);
return Object.values(obj);
3.2 利用 Set 去重
function func4(array)
const set = new Set(array);
return [...set];
参考链接
以上是关于数组去重的主要内容,如果未能解决你的问题,请参考以下文章