你的位置:首页 > Java教程

[Java教程]js 数组去重


这是一道常见的面试题,最近在做【搜索历史记录】功能也用到,开始用了 indexOf 方法,该方法在 ECMA5才有支持,对于 IE8- 就不支持了。

我们可以自己写一个函数(Array对象的方法都是定义在原型对象上的),如下:

<script type="text/javascript">Array.prototype.unique = function(){  var length = this.length;  if(length <= 1){    return this;  }  if(!Array.prototype.indexOf){        Array.prototype.indexOf = function(item){      var l = this.length, i = 0, r = -1;      if(l <= 0){
         return -1;
       } for(; i < l; i++){ if(this[i] === item){ r = i; } } return r; } } var result = []; //去重数组 for(var i = 0; i < length; i++){ if(result.indexOf(this[i]) === -1){ result.push(this[i]); } } return result;}</script>