如题所述
åçjsçæ°ç»æ¯ä¸å å«å»éå½æ°çã
å¯ä»¥èªå·±ç¼åå»éå½æ°ã
ä¸é¢æ¯ä¸ä¸ªç®åçä¾å
$.array.extend({unique : function (fn) {
var len = this.length,
result = this.slice(0),
i, datum;
if ('function' != typeof fn) {
fn = function (item1, item2) {
return item1 === item2;
};
}
while (--len > 0) {
datum = result[len];
i = len;
while (i--) {
if (fn(datum, result[i])) {
result.splice(len, 1);
break;
}
}
}
len = this.length = result.length;
for ( i=0; i<len; i++ ) {
this[ i ] = result[ i ];
}
return this;
}
});
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-09-19
1.创建一个新的数组存放结果
2.创建一个空对象
3.for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到结果数组中,同时把这个元素的内容作为对象的一个属性,并赋值为1,存入到第2步建立的对象中。本回答被网友采纳
2.创建一个空对象
3.for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到结果数组中,同时把这个元素的内容作为对象的一个属性,并赋值为1,存入到第2步建立的对象中。本回答被网友采纳
第2个回答 2016-01-09
javascript中去掉数组中的重复元素需要用循环处理。
比如定义一个数组:
var arr = [9, 9, 111, 2, 3, 4, 4, 5, 7];
调用removeDuplicates方法进行去重处理
Array.prototype.removeDuplicates = function (){
var temp=new Array();
this.sort();
for(i=0;i<this.length;i++){
if(this[i]==this[i+1]) {continue}
temp[temp.length]=this[i];
}
return temp;
}
var result =arr.removeDuplicates;
结果:[9, 111, 2, 3, 4, 5, 7]
比如定义一个数组:
var arr = [9, 9, 111, 2, 3, 4, 4, 5, 7];
调用removeDuplicates方法进行去重处理
Array.prototype.removeDuplicates = function (){
var temp=new Array();
this.sort();
for(i=0;i<this.length;i++){
if(this[i]==this[i+1]) {continue}
temp[temp.length]=this[i];
}
return temp;
}
var result =arr.removeDuplicates;
结果:[9, 111, 2, 3, 4, 5, 7]