【发布时间】:2017-05-02 19:34:35
【问题描述】:
通常,据说'forEach' 不返回任何数组,而'map' 返回一个。但是,在我的情况下,它返回一个。下面发布的是我的代码。我有点困惑。任何帮助将不胜感激。
//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]
【问题讨论】:
-
它不返回任何东西,你只是在修改它里面的数组
-
您正在推入
arr_temp,然后是console.log(arr_temp)。return实际上并没有做任何事情。 -
forEach不关心返回值。 -
你没有对
forEach的返回值做任何事情。执行var result = arr.forEach(...);并检查result。它将是undefined,而不是数组。显然arr_temp是一个数组,因为你做了var arr_temp = [];。 -
如果你这样做得当,那就是
var arr_temp = arr.map(i => i + i);
标签: javascript arrays foreach ecmascript-6