|
到了第三題時卡了偶老半天,并不是做不出來,感覺有很簡便的方法但自己就是一時想不出來,不過費了九牛二虎之力終于完成本題,給出了一個另自己還比較滿意的答案,歡迎各位朋友指點!
題目如下:
請給Array本地對象增加一個原型方法,它的用途是刪除數組條目中重復的條目(可能有多個),返回值是一個僅包含被刪除的重復條目的新數組。
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
復制代碼 代碼如下:
Array.prototype.delRepeat=function()
{
var tmpArr=[],rs=[],i,val;
for(i=this.length;i>0;i--)
{
val = this[i-1];
if(!tmpArr[val])
{
tmpArr[val]=1;
}else
{
rs.push(val);
this.splice(i-1,1);
}
}
tmpArr = null;
return rs;
}
兩個優點:
1、預先將this[i-1]保存在變量val中,減少訪問次數。
2、使用array.push方法,替換用變量保存數組長度的辦法。
很好!贊一個!
偶還順便實現了對返回重復項的過濾,可能是對題意理解有偏差。
JavaScript技術:刪除數組條目中重復的條目(可能有多個),返回值是一個僅包含被刪除的重復條目的新數組。,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。