Saya tahu ada banyak topik seperti ini. Dan saya tahu dasar-dasarnya: .forEach()beroperasi pada array asli dan .map()yang baru.
Dalam kasus saya:
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);
Dan inilah keluarannya:
[ -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 ]
Saya tidak mengerti mengapa menggunakan practiceperubahan nilai bmenjadi undefined.
Maaf jika ini adalah pertanyaan konyol, tetapi saya cukup baru dalam bahasa ini dan jawaban yang saya temukan sejauh ini tidak memuaskan saya.
.mapmengembalikan array baru , sedangkan.forEachtidak mengembalikan apa pun . Pada dasarnya, jika Anda ingin mendapatkan bentuk modifikasi dari larik sebelumnya, Anda menggunakan.map, jika Anda tidak menginginkannya, Anda menggunakan.forEach.