Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Apakah tatasusunan pseudo dalam javascript
Dalam JavaScript, tatasusunan pseudo, juga dikenali sebagai objek seperti tatasusunan, ialah objek seperti tatasusunan yang menyimpan data mengikut indeks dan mempunyai atribut panjang kerana ia adalah objek, pseudo -array tidak mempunyai tolakan array (), forEach() dan kaedah lain.
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi JavaScript 1.8.5, komputer Dell G3.
Susun atur (ArrayLike), juga dikenali sebagai seperti tatasusunan. Merupakan objek seperti tatasusunan yang menyimpan data mengikut indeks dan mempunyai sifat panjang. Tetapi ia mempunyai ciri-ciri berikut.
Simpan data mengikut indeks
0: xxx, 1: xxx, 2: xxx...
mempunyai atribut length
tetapi length
Atribut tidak dinamik dan tidak akan berubah apabila ahli berubah
Kaedah seperti push() dan forEach() yang tidak mempunyai tatasusunan
arrayLike.__proto__ === Object.prototype; //true arrayLike instanceof Object; //true arrayLike instanceof Array; //false
Susun semu tipikal yang biasa termasuk set elemen DOM yang diperoleh melalui $() dalam jQuery, objek argumen dalam fungsi dan objek String.
Contoh:
var arrLike = { 0: 'a', 1: 'b', 2: 'c', length: 3, } arrLike[1]; //'a' arrLike.length; //3 arrLike.push('d'); //Uncaught TypeError: arrLike.push is not a function
var arrLike = { 0: 'a', 1: 'b', 2: 'c', length: 3, };
1 >
Ia agak ringkas dan mudah difahami, tetapi langkahnya agak rumit.var arr = []; for(var i = 0; i < arrLike.length; i++){ arr.push(arrLike[i]); }2. Gunakan kaedah slice() tatasusunan [Disyorkan]
atau
;[].slice.call(arrLike);Gunakan slice() untuk kembalikan yang baru Untuk tatasusunan, gunakan call() atau apply() untuk menghalakan persekitarannya kepada tatasusunan pseudo.
Array.prototype.slice.apply(arrLike);
Perhatikan bahawa tiada atribut tambahan selain daripada nilai indeks akan dikekalkan dalam tatasusunan yang dikembalikan.
Sebagai contoh, dalam tatasusunan pseudo DOM yang diperolehi oleh $() dalam jQuery, atribut konteks di dalamnya tidak akan dikekalkan selepas ditukar oleh kaedah ini.
Simulasikan pelaksanaan dalaman slice()
Array.prtotype.slice = function(start, end){ var result = new Array(); var start = start | 0; var end = end | this.length; for(var i = start; i < end; i++){ result.push(this[i]); } return result; }3. Ubah suai penunjuk prototaip
supaya arrLike mewarisi Array. Untuk kaedah dalam prototaip, anda boleh menggunakan push(), unshift() dan kaedah lain, dan nilai panjang juga akan berubah secara dinamik.
arrLike.__proto__ = Array.prototype;
Selain itu, kaedah mengubah suai rantai prototaip secara langsung ini juga akan mengekalkan semua atribut dalam tatasusunan pseudo, termasuk atribut yang bukan nilai indeks.
4. Kaedah Array.from() dalam ES2015Kaedah Array.from() mencipta tika tatasusunan baharu daripada objek seperti tatasusunan atau boleh lelar.
Hasil yang diperoleh adalah serupa dengan kaedah kedua, hanya atribut dalam nilai indeks yang dikekalkan.var arr = Array.from(arrLike);
[Pembelajaran yang disyorkan:
Tutorial JavaScript LanjutanAtas ialah kandungan terperinci Apakah tatasusunan pseudo dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!