Memahami Perbezaan antara .forEach() dan .map() dalam JavaScript
Melangkaui perbezaan utama yang .forEach() beroperasi pada tatasusunan asal manakala .map() mencipta tatasusunan baharu, terdapat nuansa yang perlu dipertimbangkan. Ini ditunjukkan dalam kod yang disediakan:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function practice(i) {
return i + 1;
}
var a = [-1, 0, 1, 2, 3, 4, 5];
var b = [0];
var c = [0];
console.log(a);
b = a.forEach(practice);
console.log( "=====" );
console.log(a);
console.log(b);
c = a.map(practice);
console.log( "=====" );
console.log(a);
console.log(c);
|
Salin selepas log masuk
Output:
1 2 3 4 5 6 7 | [-1, 0, 1, 2, 3, 4, 5]
=====
[-1, 0, 1, 2, 3, 4, 5]
undefined
=====
[-1, 0, 1, 2, 3, 4, 5]
[0, 1, 2, 3, 4, 5, 6]
|
Salin selepas log masuk
Penjelasan:
-
forEach(): Kaedah ini berulang pada setiap elemen dalam tatasusunan, tetapi ia tidak mengembalikan nilai. Dalam contoh, a.forEach(practice) melaksanakan fungsi amalan pada setiap elemen dalam 'a', tetapi hasilnya (undefined) tidak diberikan kepada 'b'. Oleh itu, 'b' kekal tidak berubah.
-
map(): Kaedah ini mencipta tatasusunan baharu dengan mengubah setiap elemen dalam tatasusunan asal. Dalam contoh, a.map(practice) menggunakan fungsi amalan pada setiap elemen dalam 'a' dan mengembalikan tatasusunan baharu 'c' dengan nilai yang diubah.
Perbezaan Utama:
-
Nilai Pulangan: forEach() tidak mengembalikan apa-apa, manakala map() mencipta tatasusunan baharu.
-
Operasi: forEach() melelaran dan melakukan kesan sampingan, manakala map() melelar dan berubah.
-
Kesan Sampingan : forEach() boleh memutasi tatasusunan asal melalui fungsi panggil balik, manakala map() hanya mengubah nilai.
Memahami perbezaan ini adalah penting apabila memilih kaedah yang sesuai untuk manipulasi tatasusunan dalam JavaScript.
Atas ialah kandungan terperinci Apakah Perbezaan Utama Antara Kaedah `forEach()` dan `map()` JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!