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]
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]
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!