日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 真数组 伪数组_伪数组(ArrayLike)

發布時間:2025/4/16 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 真数组 伪数组_伪数组(ArrayLike) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

偽數組的定義和特性

偽數組 (ArrayLike),又稱類數組。是一個類似數組的對象,但是有如下幾個特征:

按索引方式儲存數據:

0: xxx, 1: xxx, 2: xxx...

具有length屬性

但是length屬性不是動態的,不會隨著成員的變化而改變

不具有數組的push(),forEach()等方法

arrayLike.__proto__ === Object.prototype; //true

arrayLike instanceof Object; //true

arrayLike instanceof Array; //false

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

偽數組轉化成真數組的方法

var arrLike = {

0: 'a',

1: 'b',

2: 'c',

length: 3,

};

1.遍歷添加入一個空數組

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

var arr = [];

for (var i = 0; i < arrLike.length; i++) {

arr.push(arrLike[i]);

}

2.利用數組的slice()方法

[].slice.call(arrLike);

或者

Array.prototype.slice.apply(arrLike);

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

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

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

3.修改原型指向

arrLike.__proto__ = Array.prototype;

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

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

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

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

var arr = Array.from(arrLike);

得到的結果與第二種方法類似,只保留索引值內的屬性。

總結

以上是生活随笔為你收集整理的java 真数组 伪数组_伪数组(ArrayLike)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。