Rumah > hujung hadapan web > tutorial js > Mengapakah mengubah suai elemen tatasusunan dalam gelung forEach dalam JavaScript tidak mengubah tatasusunan asal?

Mengapakah mengubah suai elemen tatasusunan dalam gelung forEach dalam JavaScript tidak mengubah tatasusunan asal?

DDD
Lepaskan: 2024-11-30 22:25:14
asal
982 orang telah melayarinya

Why does modifying array elements within a forEach loop in JavaScript not change the original array?

Mengubah Suai Nilai Tatasusunan Semasa Lelaran

Dalam JavaScript, kaedah forEach() biasanya digunakan untuk mengulangi tatasusunan dan melakukan tindakan tertentu pada setiap elemen. Walau bagaimanapun, percubaan untuk mengubah suai elemen ini dalam gelung lelaran sering menyebabkan nilai asal dikekalkan.

Pertimbangkan contoh berikut:

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

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

alert(arr); // Output: ["one", "two", "three"]
Salin selepas log masuk

Walaupun menetapkan "empat" untuk bahagian dalam gelung , tatasusunan arr kekal tidak berubah. Ini kerana panggilan balik forEach() hanya menerima salinan setiap elemen, bukan rujukan kepada elemen asal.

Mengubah suai Elemen dengan Indeks Array

Untuk mencapai pengubahsuaian yang bermakna, kita boleh menggunakan parameter indeks yang disediakan oleh panggilan balik forEach(). Parameter ini mewakili indeks unsur semasa dalam tatasusunan:

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

Dalam kes ini, Tatasusunan merujuk kepada tatasusunan asal dan kami boleh mengakses dan mengubah suai elemennya secara langsung menggunakan nilai indeks.

Menggunakan Parameter ini

Sebagai alternatif, kita boleh menggunakan parameter ini bagi panggilan balik forEach() sebagai rujukan kepada tatasusunan:

arr.forEach(function (part, index) {
  this[index] = "hello world";
}, arr); // Use arr as this
Salin selepas log masuk

Dengan menetapkan arr sebagai nilai ini, kami memastikan bahawa [indeks] ini menunjuk kepada elemen yang betul dalam tatasusunan.

Memilih Alat yang Tepat

Walaupun forEach() membenarkan lelaran dan pengubahsuaian, terdapat kaedah prototaip Array lain yang mungkin lebih sesuai untuk kegunaan tertentu kes:

  • forEach: Mengulang setiap elemen dan melakukan tindakan, tetapi tidak mengubah suai tatasusunan.
  • penapis: Mencipta tatasusunan baharu yang mengandungi hanya elemen yang memenuhi syarat tertentu.
  • peta: Mencipta tatasusunan baharu dengan mengubah setiap elemen mengikut fungsi yang diberikan.
  • beberapa: Menyemak sama ada sekurang-kurangnya satu elemen dalam tatasusunan memenuhi syarat.
  • setiap : Menyemak sama ada semua elemen dalam tatasusunan memenuhi syarat.

Dengan memilih kaedah yang sesuai berdasarkan anda tugas, anda boleh mencapai manipulasi tatasusunan yang cekap dan tepat.

Atas ialah kandungan terperinci Mengapakah mengubah suai elemen tatasusunan dalam gelung forEach dalam JavaScript tidak mengubah tatasusunan asal?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan