美文网首页
JavaScript 数组去重

JavaScript 数组去重

作者: xyfun | 来源:发表于2016-09-15 18:26 被阅读0次

来自百度前端学院IFE

要求:对数组进行去重操作,只考虑数组中元素为数字或字符串,返回一个去重后的数组

function uniqArray(arr) { 
    // your implement
}
// 使用示例
var a = [1, 3, 5, 7, 5, 3];
var b = uniqArray(a);
console.log(b); // [1, 3, 5, 7]

代码如下:

function uniqArray(arr){
    var result=[];
    var isRepeat;
    for (var i = 0; i < arr.length; i++) {
        isRepeat=false;
        for (var j = 0; j < result.length; j++) {
            if (arr[i]==result[j]) {
                isRepeat=true;
                break;
            }
        }
        if (!isRepeat) {
            result.push(arr[i]);
        }
    }
    return result;
}

总体思路是把数组元素逐个搬运到另一个数组,搬运的过程中检查这个元素是否有重复,如果有就直接丢掉。从嵌套循环就可以看出,这种方法效率极低。我们可以 用一个hashtable的结构记录已有的元素,这样就可以避免内层循环。恰好,在Javascript中实现hashtable是极为简单的,改进如下:

function uniqArray(arr){
    var result=[];
    var obj={};
    for (var i = 0; i < arr.length; i++) {
        if(!obj[arr[i]]){
            result.push(arr[i]);
            obj[arr[i]]=true;
        }
    }
    return result;
}

相关文章

  • JavaScript数组去重算法实例

    本文主要介绍了JavaScript数组去重算法,结合实例形式总结分析了JavaScript数组去重相关的读写、遍历...

  • javascript数组去重,数组对象去重

    利用Reduce去重 function unique(arr) {var obj = {};arr = arr.r...

  • JavaScript - 数组去重

    数组去重 1.for循环 2.0 少了多少行代码~~~ 3.0 indexOf 4.0 map/forEach E...

  • javascript 数组去重

    es6数组去重的方法

  • JavaScript 数组去重

    数组去重,一般都是在面试的时候才会碰到,一般是要求手写数组去重方法的代码。如果是被提问到,数组去重的方法有哪些?你...

  • JavaScript 数组去重

    博客地址:https://ainyi.com/#/32 单数组去重 filter + indexOf() filt...

  • JavaScript数组去重

    数组去重是一个js中在面试中经常被问到的问题,被问到是因为确实能够考察一些问题。如果不使用第三方的工具库,完全使用...

  • Javascript 数组去重

    数组去重 数组去重,一般需求是给你一个数组,调用去重方法,返回数值副本,副本中没有重复元素。一般来说,两个元素通过...

  • 【JavaScript】数组去重

    话说面试常会碰到面试官会问JavaScript实现数组去重的问题,最近刚好在学习有关于JavaScript数组相关...

  • JavaScript数组去重

    当前元素的下标,和从数组里找到该元素的下标一样时,说明是第一次出现 ES6 Set类似于数组,成员值唯一,经过过滤...

网友评论

      本文标题:JavaScript 数组去重

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