首页 > 技术文章 > JS删除数组条目中重复的条目

wx1993 2015-08-02 15:45 原文

【腾讯2015春招web前端开发练习卷】

请给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组。

 1 Array.prototype.distinct = function() {
 2     var ret = [];
 3     for (var i = 0; i < this.length; i++)
 4     {
 5         for (var j = i+1; j < this.length;) {   
 6             if (this[i] === this[j]) {
 7                 ret.push(this.splice(j, 1)[0]);
 8             } else {
 9                 j++;
10             }
11         }
12      }
13      return ret;
14 }
15 //for test
16 alert(['a','b','c','d','b','a','e'].distinct());

【运行结果】

【知识点1】splice()方法:向数组中添加/从数组中删除项目,并返回被删除的项目。

语法:arrayObject.splice(index,howmany,item1...itemX);

index:添加/删除项目的位置(在处于index位置的项目前添加)

howmany:删除的项目个数,若为零表示不删除,若不为零,则删除位置用后面的item元素替换。

【知识点2】push()方法:向数组末尾添加一个或多个元素,并返回新的长度。

 

推荐阅读