2016-12-16 4 views
-6

一般的に、 'forEach'は 'map'が1を返す配列を返さないと言われています。しかし、私の場合はone.Belowが返されています。私は混乱しています。どんな助けもありがたいです。.forEach()Javascript関数が配列を返していますか?

//Code Snippet // 
    var arr = [1, 3, 2]; 
    var arr_temp = []; 

arr.forEach(function (i) { 
    return arr_temp.push(i + i); 
}); 

console.log(arr_temp); 

私はのような出力を取得しています:それは何も返しません [2,6,4]

+2

それはあなたが単にあなたが '' arr_temp'にプッシュして、されている – charlietfl

+2

その中に配列を変更している、何も返しません:あなたはforEach呼び出しの結果をロギングすることでことを確認することができますconsole.log(arr_temp) 'それです。 'return'は実際に何もしません。 –

+0

このコードは、それらの値を一時配列にプッシュすることによって得られる出力を記述します。予想される出力は何ですか? –

答えて

2

var arr = [1, 3, 2]; 
 
var arr_temp = []; 
 

 
console.log(arr.forEach(function (i) { 
 
    return arr_temp.push(i + i); 
 
})); // undefined 
 

 
console.log(arr_temp); // 2, 6, 4

+0

@Gothodoですが、arr_tempの更新された値を返していますか? –

+0

@mohanbabu No.単に 'arr_temp'配列を変更します。 –

+3

@モハンバブ:いいえ、何も返さない*。 **あなた**は 'arr_temp.push(i + i)'を実行することによって 'arr_temp'に値を追加しています。その行は、文字通り、「arr_temp」で参照される配列に 'i + i'を追加することを意味します。 –

関連する問題