每日一题
1.请给Array本地对象增加一个原型方法,用于删除数组中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组。
我本身对这道题的理解有歧义,所以给出两种情况:
第一种返回去除掉重复条目的数组,如[1,2,2,3,3,3]返回[1,2,3]
Array.prototype.deleteSameElement=function(){
var array=this,
newArray_1=[],
i,
len;
newArray_1.push(array[0]);
for(i=1,len=array.length;i<len;i++){
if(newArray_1.indexOf(array[i])==-1){
newArray_1.push(array[i]);
}
}
return newArray_1;
}
var array=[3,2,1,3,5,2,3,5,1];
alert(array.deleteSameElement()); //返回[3,2,1,5]
另外一种是返回重复数组条目组成的数组,如:[1,2,2,3,3,3],返回[2,3,3]
Array.prototype.deleteSameElement=function(){ var array=this, newArray_1=[], newArray_2=[], i, len; newArray_1.push(array[0]); for(i=1,len=array.length;i<len;i++){ if(newArray_1.indexOf(array[i])==-1){ newArray_1.push(array[i]); }else{ newArray_2.push(array[i]); } } return newArray_2.sort(); } var array=[1,2,3,1,3,1]; alert(array.deleteSameElement()); //返回[1,1,3]