在javascript中什么是偽數(shù)組_第1頁
在javascript中什么是偽數(shù)組_第2頁
在javascript中什么是偽數(shù)組_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第在javascript中什么是偽數(shù)組常見的典型偽數(shù)組,包括jQuery中通過$()獲取的DOM元素集,函數(shù)中的的arguments對象,以及字符串String對象。

例子:

vararrLike={

0:a,

1:b,

2:c,

length:3,

arrLike[1];//a

arrLike.length;//3

arrLike.push(d//UncaughtTypeError:arrLike.pushisnotafunction

偽數(shù)組轉(zhuǎn)化成真數(shù)組的方法

vararrLike={

0:a,

1:b,

2:c,

length:3,

};

1、遍歷添加入一個空數(shù)組

vararr=[];

for(vari=0;iarrLike.length;i++){

arr.push(arrLike[i]);

}

比較簡單易懂,但是步驟略顯繁瑣。

2、利用數(shù)組的slice()方法【推薦】

;[].slice.call(arrLike);

或者

Atotype.slice.apply(arrLike);

使用slice()返回一個新的數(shù)組,用call()或apply()把他的作用環(huán)境指向偽數(shù)組。

注意這個返回的數(shù)組中,不會保留索引值以外的其他額外屬性。

比如jQuery中$()獲取的DOM偽數(shù)組,里面的context屬性在被此方法轉(zhuǎn)化之后就不會保留。

模擬一下slice()的內(nèi)部實現(xiàn)

Array.prtotype.slice=function(start,end){

varresult=newArray();

varstart=start|0;

varend=end|this.length;

for(vari=start;iend;i++){

result.push(this[i]);

returnresult;

}

3、修改原型指向

arrLike.__proto__=Atotype;

這樣arrLike就繼承了Atotype中的方法,可以使用push(),unshift()等方法了,length值也會隨之動態(tài)改變。

另外這種直接修改原型鏈的方法,還會保留下偽數(shù)組中的所有屬性,包括不是索引值的屬性。

4、ES2015中的Array.from()方法

Array.from()方法從一個類似數(shù)組或可迭代對象中創(chuàng)建一個新的數(shù)組實例。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論