Rumah > hujung hadapan web > tutorial js > Mengapa Kaedah `peta` JavaScript Melangkau Elemen Tidak Ditakrifkan dalam Tatasusunan Jarang?

Mengapa Kaedah `peta` JavaScript Melangkau Elemen Tidak Ditakrifkan dalam Tatasusunan Jarang?

Patricia Arquette
Lepaskan: 2024-12-10 01:10:10
asal
152 orang telah melayarinya

Why Does JavaScript's `map` Method Skip Undefined Elements in Sparse Arrays?

Memahami Penciptaan Array dan Kaedah peta dalam JavaScript

Apabila mencipta tatasusunan menggunakan ungkapan Array(count) baharu, anda pada asasnya mencipta susunan jarang. Tatasusunan jarang mengandungi "lubang" atau elemen yang tidak ditentukan pada indeks yang belum diberikan nilai secara eksplisit. Tingkah laku ini berbeza daripada tatasusunan yang dibuat menggunakan sintaks literal tatasusunan ([1, 2, 3]), yang mempunyai nilai yang ditentukan untuk semua elemen.

Kaedah peta, sebaliknya, cuba menggunakan fungsi transformasi kepada setiap elemen tatasusunan. Walau bagaimanapun, apabila digunakan pada tatasusunan jarang, kaedah peta melangkau unsur yang tidak ditentukan dan hanya mengubah unsur yang ditentukan. Ini menerangkan tingkah laku yang kelihatan tidak dijangka yang diperhatikan dalam coretan kod yang diberikan.

Menyelesaikan Isu

Untuk menyelesaikan isu ini, seseorang boleh menangani keterbatasan tatasusunan sebelum menggunakan kaedah peta. Kaedah Array.prototype.fill() boleh digunakan untuk menetapkan nilai lalai (seperti undefined) kepada semua elemen dalam tatasusunan. Sebagai alternatif, kaedah peta boleh digabungkan dengan pernyataan bersyarat untuk hanya mengubah elemen yang ditentukan:

var x = new Array(3).fill(undefined);
var y = x.map(function(e) { return e !== undefined ? 0 : 1; });
console.log(y); // [1, 1, 1]
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Kaedah `peta` JavaScript Melangkau Elemen Tidak Ditakrifkan dalam Tatasusunan Jarang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan