写点什么

数组去重的 5 种方法是什么?

作者:InfoQ IT百科
  • 2022 年 4 月 24 日
  • 本文字数:632 字

    阅读完需:约 2 分钟

数组去重的 5 种方法是什么?利用 ES6 的 Set 数据结构去重;双重 for 循环 + slice 去重;利用单层循环 + indexOf 去重;利用数组的 includes 方法去重;利用数组的 filter 方法去重


以下是五种常用的数组去重方法。


1. 利用 ES6 的 Set 数据结构去重。

var obj = {  name:'Wang'}
const arr = [1,1,2,3,5,6,6,7,{},{},obj,obj];
const set = new Set(arr);const newArr = Array.from(set);console.log(newArr);
复制代码


2. 双重 for 循环 + slice 去重


const arr = [1,1,2,3,5,6,6,7,{},{},obj,obj];  for(let i = 0; i <arr.length;i++){    for(let j = i+1; j < arr.length; j++){      if(arr[i] === arr[j]){        arr.splice(j,1);        j--;      }    }}
console.log(arr);
复制代码


3. 利用单层循环 + indexOf 去重

const arr = [1,1,2,3,5,6,6,7,{},{},obj,obj];  const newArr = [];  for(let i = 0;i <arr.length;i++){    if(newArr.indexOf(arr[i]) ===-1) {      newArr.push(arr[i]);    }}
console.log(newArr);
复制代码


4. 利用数组的 includes 方法去重

const arr = [1,1,2,3,5,6,6,7,{},{},obj,obj];
const newArr = [];for(let i = 0;i <arr.length;i++){ if(!newArr.includes(arr[i])){ newArr.push(arr[i]); }}console.log(newArr);
复制代码


5. 利用数组的 filter 方法去重

const arr = [1,1,2,3,5,6,6,7,{},{},obj,obj];
const newArr = arr.filter((item,index)=> { return arr.indexOf(item,0) === index;});console.log(newArr);
复制代码


用户头像

还未添加个人签名 2021.04.12 加入

还未添加个人简介

评论

发布
暂无评论
数组去重的5种方法是什么?_InfoQ IT百科_InfoQ写作社区