Rumah >hujung hadapan web >tutorial js >Bolehkah Anda Mengubah Suai Nilai Tatasusunan Semasa Menggunakan `forEach` dalam JavaScript?

Bolehkah Anda Mengubah Suai Nilai Tatasusunan Semasa Menggunakan `forEach` dalam JavaScript?

DDD
DDDasal
2024-11-09 04:58:02427semak imbas

Can You Modify Array Values While Using `forEach` in JavaScript?

Mengubah Suai Nilai Tatasusunan Semasa Lelaran dengan forEach

Dalam JavaScript, kaedah forEach membolehkan anda mengulangi elemen tatasusunan. Walau bagaimanapun, secara lalai, anda tidak boleh mengubah suai nilai tatasusunan dalam fungsi panggil balik lelaran.

Pertimbangkan contoh berikut:

var arr = ["one", "two", "three"];

arr.forEach(function(part) {
  part = "four";
  return "four";
});

alert(arr); // Output: ["one", "two", "three"]

Seperti yang anda lihat, susunan tatasusunan kekal tidak berubah selepas forEach gelung. Ini kerana fungsi forEach panggil balik hanya menerima salinan elemen tatasusunan, bukan rujukan kepada elemen sebenar.

Penyelesaian: Mengakses Elemen Sebenar

Untuk mengubah suai nilai tatasusunan semasa lelaran, anda perlu mengakses elemen sebenar. Anda boleh melakukan ini dengan menghantar fungsi panggil balik parameter ketiga, yang akan menjadi penuding tatasusunan, seperti yang dilihat di bawah:

arr.forEach(function(part, index, theArray) {
  theArray[index] = "hello world";
});

Dalam contoh ini, theArray ialah penuding tatasusunan. Anda boleh menggunakannya untuk mengakses dan mengubah suai elemen sebenar pada indeks semasa.

Menggunakan ini sebagai Penunjuk Tatasusunan

Sebagai alternatif, anda boleh menggunakan argumen kedua kaedah forEach untuk menentukan nilai ini untuk fungsi panggil balik. Nilai ini akan menjadi penuding tatasusunan itu sendiri.

arr.forEach(function(part, index) {
  this[index] = "hello world";
}, arr); // Array must be passed as `this`

Kedua-dua pendekatan membolehkan anda mengubah suai nilai tatasusunan sambil melelakannya menggunakan kaedah forEach.

Atas ialah kandungan terperinci Bolehkah Anda Mengubah Suai Nilai Tatasusunan Semasa Menggunakan `forEach` dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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