Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Memastikan Objek Unik Apabila Menggunakan Array.prototype.fill()?

Bagaimanakah Saya Boleh Memastikan Objek Unik Apabila Menggunakan Array.prototype.fill()?

Mary-Kate Olsen
Lepaskan: 2024-12-18 16:50:20
asal
259 orang telah melayarinya

How Can I Ensure Unique Objects When Using Array.prototype.fill()?

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
Salin selepas log masuk

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'
Salin selepas log masuk

Untuk mencipta objek baharu bagi setiap elemen tatasusunan menggunakan Array.prototype.fill(), anda boleh mengikuti langkah berikut:

  1. Isi tatasusunan dengan sebarang nilai arbitrari (cth., tidak ditentukan) menggunakan fill() kaedah.
  2. Gunakan kaedah map() untuk mencipta tatasusunan baharu dengan kejadian baharu jenis objek yang diingini:
var arr = new Array(2).fill().map(u => ({}));
Salin selepas log masuk

Pendekatan ini memastikan setiap elemen tatasusunan adalah objek yang berbeza, diasingkan daripada yang lain:

arr[0].test = 'string';
console.log(arr[1].test); // undefined
Salin selepas log masuk

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!

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