8 回答

TA貢獻(xiàn)4條經(jīng)驗(yàn) 獲得超1個(gè)贊
首先你需要知道,在`Array.prototype`上擴(kuò)展的方法,默認(rèn)情況下運(yùn)行時(shí),`this`指的是實(shí)例對(duì)象,比如運(yùn)行`a.unique1()`時(shí),函數(shù)內(nèi)部的`this`就是指a。
其次 你需要了解indexOf方法,對(duì)數(shù)組來(lái)說(shuō):indexOf(item) 來(lái)說(shuō)就是判斷 返回item在數(shù)組中的下標(biāo),如果不在,則返回`-1`
這樣就清楚了吧
if?(n.indexOf(this[i])?==?-1)?{ ????//?若n這個(gè)臨時(shí)數(shù)組中不含有this[i]?,?就把this[i]?添加到新數(shù)組中。? ????//?記住this是在運(yùn)行時(shí)才決定的,你運(yùn)行a.unique1()?this就指代a,this[i]也就是a[i] ????n.push(this[i]); }

TA貢獻(xiàn)3593條經(jīng)驗(yàn) 獲得超1個(gè)贊

TA貢獻(xiàn)5條經(jīng)驗(yàn) 獲得超1個(gè)贊
??function?unique2(arr)?{ ????????????var?result?=?[],?hash?=?{}; ????????????for?(var?i?=?0,?elem;?(elem?=?arr[i])?!=?null;?i++)?{ ????????????????if?(!hash[elem])?{ ????????????????????result.push(elem); ????????????????????hash[elem]?=?true; ????????????????} ????????????} ????????????console.log(hash) ????????????return?result; ????????}

TA貢獻(xiàn)2條經(jīng)驗(yàn) 獲得超1個(gè)贊
es5 中添加了數(shù)組中查找某個(gè)元素是否存在的方法。indexOf()和lastIndexOf()

TA貢獻(xiàn)25條經(jīng)驗(yàn) 獲得超8個(gè)贊
在空數(shù)組n里遍歷查找 數(shù)組a里的每一項(xiàng),if判斷成功說(shuō)明n里沒(méi)有a對(duì)應(yīng)項(xiàng)的數(shù)據(jù),push到n里,這方法寫(xiě)的有點(diǎn)意思啊

TA貢獻(xiàn)65條經(jīng)驗(yàn) 獲得超35個(gè)贊
如果在數(shù)組n中沒(méi)有找到則添加進(jìn)數(shù)組n中
indexOf 是查找一個(gè)值在某個(gè)字符串或者集合(數(shù)組)中的下標(biāo),如果能找到則返回對(duì)應(yīng)下標(biāo),如果找不到則返回 -1
添加回答
舉報(bào)