Rumah > hujung hadapan web > tutorial js > Mengapakah `map()` Mengembalikan Nilai Tidak Ditakrifkan pada Tatasusunan yang Dibuat dengan `Array(kiraan) baru`?

Mengapakah `map()` Mengembalikan Nilai Tidak Ditakrifkan pada Tatasusunan yang Dibuat dengan `Array(kiraan) baru`?

Patricia Arquette
Lepaskan: 2024-12-07 07:00:12
asal
770 orang telah melayarinya

Why Does `map()` Return Undefined Values on Arrays Created with `new Array(count)`?

Memahami Gelagat peta pada Tatasusunan Dibuat dengan Tatasusunan(kiraan) baharu

Apabila bekerja dengan tatasusunan JavaScript, perlu diperhatikan tingkah laku yang pelik dipamerkan oleh tatasusunan yang dibuat menggunakan sintaks Tatasusunan(bilangan) baharu.

Sebagaimana ditunjukkan dalam coretan kod di bawah, menggunakan map() pada tatasusunan jarang (susunan yang mengandungi elemen tidak ditentukan) yang dibuat dengan Tatasusunan(kiraan) baharu menghasilkan tatasusunan nilai yang tidak ditentukan:

var x = new Array(3);
x.map(function() { return 0; }); // [undefined, undefined, undefined]
Salin selepas log masuk

Sebaliknya, melaksanakan operasi yang sama pada tatasusunan padat (susunan tanpa unsur yang tidak ditentukan) dengan panjang yang sama berfungsi seperti dijangka:

var y = [undefined, undefined, undefined];
y.map(function() { return 0; }); // [0, 0, 0]
Salin selepas log masuk

Perbezaan ini berpunca daripada fakta bahawa Array(count) baharu mencipta tatasusunan jarang, bermakna ia tidak memberikan nilai lalai kepada elemennya. Akibatnya, map() tidak boleh melakukan sebarang operasi pada elemen yang tidak ditentukan, menghasilkan tatasusunan nilai yang tidak ditentukan.

Untuk mengatasi isu ini, anda boleh sama ada menggunakan sintaks tatasusunan literal untuk mencipta tatasusunan padat atau isikan secara eksplisit tatasusunan jarang dengan nilai lalai yang dikehendaki menggunakan kaedah seperti Array.prototype.fill().

Atas ialah kandungan terperinci Mengapakah `map()` Mengembalikan Nilai Tidak Ditakrifkan pada Tatasusunan yang Dibuat dengan `Array(kiraan) baru`?. 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