Rumah >hujung hadapan web >tutorial js >Apakah Perbezaan Utama Antara Kaedah `forEach()` dan `map()` JavaScript?

Apakah Perbezaan Utama Antara Kaedah `forEach()` dan `map()` JavaScript?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-20 05:38:13429semak imbas

What's the Key Difference Between JavaScript's `forEach()` and `map()` Methods?

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:

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);

Output:

[-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]

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!

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