javascript数组去重

依然记得凡科的时候遇到过这个面试题,再次做个总结

//以下是数组去重的三种方法:

Array.prototype.unique1 = function () {
  var n = []; //一个新的临时数组
  for (var i = 0; i < this.length; i++) //遍历当前数组
  {
    //如果当前数组的第i已经保存进了临时数组,那么跳过,
    //否则把当前项push到临时数组里面
    if (n.indexOf(this[i]) == -1) n.push(this[i]);
  }
  return n;
}

Array.prototype.unique2 = function()
{
    var n = {},r=[]; //n为hash表,r为临时数组
    for(var i = 0; i < this.length; i++) //遍历当前数组
    {
        if (!n[this[i]]) //如果hash表中没有当前项
        {
            n[this[i]] = true; //存入hash表
            r.push(this[i]); //把当前数组的当前项push到临时数组里面
        }
    }
    return r;
}

Array.prototype.unique3 = function()
{
    var n = [this[0]]; //结果数组
    for(var i = 1; i < this.length; i++) //从第二项开始遍历
    {
        //如果当前数组的第i项在当前数组中第一次出现的位置不是i,
        //那么表示第i项是重复的,忽略掉。否则存入结果数组
        if (this.indexOf(this[i]) == i) n.push(this[i]);
    }
    return n;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 话说面试常会碰到面试官会问JavaScript实现数组去重的问题,最近刚好在学习有关于JavaScript数组相关...
    苏星河阅读 3,911评论 0 12
  • 总结一下利用JS解决去重问题的方法。总体思路: 构建一个新的空数组。 遍历数组,将不重复的元素Push到新数组中。...
    Zchao阅读 1,198评论 0 0
  • 偶然和同事谈到面试的Javascript问题,其中基本上都会有一道问题就是数组去重,随着对于语言深入的学习,这道基...
    IloveData阅读 3,443评论 0 0
  • Why underscore (觉得这部分眼熟的可以直接跳到下一段了...) 最近开始看 underscore.j...
    韩子迟阅读 5,170评论 0 57
  • 最近看到群里一些人问数组去重怎么写,刚好之前看了些这方面的资料,总结了几种js去重的方案,在此记录一下,当然还有更...
    丶梵天阅读 1,661评论 1 3

友情链接更多精彩内容