数组去重

new Set去重

function unique(arr) {
    return Array.from(new Set(arr))
}

双重循环去重 for

const handleRemoveRepeat = (arr) => {
    for (let i=0,len = arr.length; i < len; i++) {
        for (let j = i + 1; j < len; j++) {
            if (arr[i] === arr[j]) {
                arr.splice(j, 1);
                j--;
                len--;
            }
        }
    }
    return arr;
};

使用indexOf的去重

const handleRemoveRepeat1 = (arr) => {
    let repeatArr = [];
    for (let i = 0,len = arr.length ; i < len; i++)
        if (repeatArr.indexOf(arr[i]) === -1)  repeatArr.push(arr[i])
    return repeatArr;
}

使用includes的去重

const handleRemoveRepeat2 = (arr) => {
    let repeatArr = [];
    for (let i = 0,len = arr.length ; i < len; i++)
        if (!repeatArr.includes(arr[i])) repeatArr.push(arr[i])
    return repeatArr;
}

使用filter配合indexOf进行的去重过程,真的可以非常的简单且富含趣味性。

const handleRemoveRepeat3 = (arr) => arr.filter((item,index) => arr.indexOf(item,0) === index);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、测试模版 数组去重是一个老生常谈的问题,网上流传着有各种各样的解法 为了测试这些解法的性能,我写了一个测试模版...
    过期猫粮_45f1阅读 900评论 0 0
  • 前言 我们先来看下面的例子,当然来源与网络,地址《删除数组中多个不连续的数组元素的正确姿势[http://www....
    以梦为马_b198阅读 220评论 0 0
  • 数组去重是一个经常会用到的方法,我写了一个测试模板,测试一下常见的数据去重的方法的性能 测试模板 1、Array....
    路尔轩阅读 16,179评论 1 5
  • const arr=[1,2,3,3,2]方法一:Array.filter() + indexOfarr.filt...
    bawei939阅读 327评论 0 0
  • 一、利用ES6方法去重 es6的第一种方法,利用js扩展运算符和new Set()方法实现去重,缺点是无法去掉重复...
    我喂自己带盐阅读 326评论 0 0