美文网首页程序员想法
JS数组去重面试总结

JS数组去重面试总结

作者: Splendid飞羽 | 来源:发表于2020-12-27 16:53 被阅读0次
let arr = [1, 2, 2, 3, 4, 5];

方法一:使用es6的Set结构去重, Array.from可以将Set结构转化为普通数组

推荐指数:五颗星

let uniqeArr1 = (arr) => {
    return Array.from(new Set(arr));
}
uniqeArr1(arr);

方法二:使用indexOf去重,利用indexOf只会查找第一次的索引值

推荐指数:四颗星

let uniqeArr2 = (arr) => {
    let res = [];
    for (let i = 0; i < arr.length; i++) {
        if (res.indexOf(arr[i]) < 0) {
            res.push(arr[i]);
        }
    }
    return res;
}
uniqeArr2(arr);

方法三:使用es6的filter去重,原理也是利用indexOf只会查找第一次的索引值

推荐指数:四颗星

let uniqeArr3 = (arr) => {
    return arr.filter((item, index) => {
        return arr.indexOf(item) == index;
    })
}
uniqeArr3(arr);

方法四:使用哈希去重,利用对象健值的唯一性向数组push不重复的值

推荐指数:三颗星

let uniqeArr4 = (arr) => {
    let res = [],
        hash = {};
    for (let i = 0; i < arr.length; i++) {
        if (!hash[arr[i]]) {
            res.push(arr[i]);
            hash[arr[i]] = true;
        }
    }
    return res;
}
uniqeArr4(arr);

方法五:方法四的变种,使用es6中的Map结构去重, 此处也可以使用Set结构,set.add添加即可

推荐指数:三颗星

let uniqeArr5 = (arr) => {
    let res = [],
        map = new Map();
    for (let i = 0; i < arr.length; i++) {
        if (!map.has(arr[i])) {
            res.push(arr[i]);
            map.set(arr[i], true);
        }
    }
    return res;
}
uniqeArr5(arr)

相关文章

  • JS数组去重面试总结

    方法一:使用es6的Set结构去重, Array.from可以将Set结构转化为普通数组 推荐指数:五颗星 方法二...

  • js数组去重总结

    1.1.遍历数组法 最简单的去重方法, 实现思路:新建一新数组,遍历传入数组,值不在新数组就加入该新数组中;注意点...

  • 5.18 总结

    1 数组去重 js数组去重的常用方法总结 2 定时器的返回值是定时器的编号 定时器的执行;(全部js代码执...

  • JS数组去重常见方法分析

    数组去重是开发中经常会遇到的问题,也是面试时经常会考到的。JS实现数组去重可以有多种方法: 一、简单的去重方法 用...

  • js中数组去重的方法

    在实际工作或面试中,我们经常会遇到“数组去重”问题,接下来就是使用js实现的数组去重的多种方法: 1.将数组的每一...

  • 数组的去重和数组中对象的去重

    数组中对象去重 方式1 jq方式 方式2 原生js方式 普通数组的去重 方式1 普通的数组去重js 方式2 Se...

  • js数组去重算法总结

    一、去重 我在前端面试过程中遇到去重算法的概率为百分之九十,这里就总结下各种去重算法及其复杂度 1. new Se...

  • js常见面试题

    总结了一些常见的js面试题,欢迎大家评论补充。!!!注意不要一味的死记硬背,掌握原理才是关键。 数组去重 var ...

  • web前端常见面试题

    面试常见问题总结 JavaScript 原型 数据存储 : 堆栈 深拷贝 数组去重 null undefined...

  • 常用数组算法

    Array是js里的内置对象,也是我们最常用的一种,在这里我们整理一下常见的简单算法 1.数组去重 数组去重是面试...

网友评论

    本文标题:JS数组去重面试总结

    本文链接:https://www.haomeiwen.com/subject/aavonktx.html