Ich weiß, dass es viele solche Themen gab. Und ich kenne die Grundlagen: .forEach()arbeitet mit dem ursprünglichen Array und .map()mit dem neuen.
In meinem Fall:
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);
Und das wird ausgegeben:
[ -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 ]
Ich kann nicht verstehen, warum die Verwendung von practiceÄnderungswerten von bto undefined.
Es tut mir leid, wenn dies eine dumme Frage ist, aber ich bin ziemlich neu in dieser Sprache und die Antworten, die ich bisher gefunden habe, haben mich nicht befriedigt.
.mapGibt ein neues Array zurück , während.forEachnichts zurückgegeben wird . Wenn Sie eine geänderte Form des vorherigen Arrays erhalten.mapmöchten, verwenden Sie grundsätzlich, wenn Sie dies nicht möchten, verwenden Sie.forEach.