您所在的位置:小祥子 » 编程 » JavaScript » 正文

前端面试高频题:写一个删除数组重复元素的方法

时间:2015-06-21 编辑:梁洋洋 来源:本站整理

最近在想着换工作,去了一家中关村的上市公司,面试官随便问了几个问题其中就提到了怎么删除数组元素的方法,表示这已经是第三次遇到了这个问题了,由于知识口头说说所以就随便说了下,之前用的时候都是直接找的方法库虽然知道大致是怎么写的但是还没有真正写过,网上的方法还是蛮多的这里也给大家分享一个作者写的吧,希望对初学者有所帮助:

//数组去重的方法
Array.prototype.unique=function(){
    //集中声明变量
    var 
      oldArr=this,
      newArr=[oldArr[0]],
      len=oldArr.length,
      _this,
      i=1;
      
    //过滤空数组
    if(!len) return this;
    
    //过滤重复元素
    for(;i<len;i++){
       _this=oldArr[i];
       newArr.indexOf(_this)<0 ? newArr.push(_this) : '';  
    }
    //返回过滤后的数组没有影响原数组
    return newArr;
}
var arr=['a','a','b','a','c','d'];
console.log(arr.unique());//["a", "b", "c", "d", unique: function]

虽然网上也有很多而且自己写的也不咋地,但是毕竟自己写的逻辑清楚以后还可以顺着逻辑扩展比如扩展到对象元素去重或者是可以同时操作多个数组等等