Array.prototype.fill(): Melepasi Objek sebagai Rujukan
Kaedah Array.prototype.fill() ialah utiliti yang mudah untuk memulakan tatasusunan dengan nilai yang ditentukan. Walau bagaimanapun, apabila mengisi tatasusunan dengan objek, objek diluluskan sebagai rujukan dan bukannya membuat kejadian baharu. Tingkah laku ini menimbulkan persoalan sama ada terdapat cara untuk memastikan setiap elemen tatasusunan ialah objek unik.
Pertimbangkan contoh berikut:
var arr = new Array(2).fill({}); console.log(arr[0] === arr[1]); // true
Dalam contoh ini, dua objek dicipta dan diluluskan sebagai rujukan kepada arr[0] dan arr[1]. Mengubah suai satu elemen tatasusunan akan mempengaruhi yang lain, kerana ia adalah objek yang sama:
arr[0].test = 'string'; console.log(arr[1].test); // 'string'
Untuk mencipta objek baharu bagi setiap elemen tatasusunan menggunakan Array.prototype.fill(), anda boleh mengikuti langkah berikut:
var arr = new Array(2).fill().map(u => ({}));
Pendekatan ini memastikan setiap elemen tatasusunan adalah objek yang berbeza, diasingkan daripada yang lain:
arr[0].test = 'string'; console.log(arr[1].test); // undefined
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memastikan Objek Unik Apabila Menggunakan Array.prototype.fill()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!