【问题标题】:.forEach() Javascript function is returning an Array?.forEach() Javascript 函数返回一个数组?
【发布时间】: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


【解决方案1】:

它不返回任何东西。您可以通过记录forEach 调用的结果来检查:

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

【讨论】:

  • @Gothodo 但它正在返回 arr_temp 中的更新值对吗??
  • @mohanbabu 没有。它只是修改了arr_temp 数组。
  • @mohanbabu:不。它不会返回任何东西。 正在通过执行arr_temp.push(i + i)arr_temp 添加值。该行的字面意思是“将i +i 添加到arr_temp 引用的数组中”。
猜你喜欢
  • 1970-01-01
  • 2022-01-02
  • 2019-07-21
  • 2017-02-03
  • 1970-01-01
  • 2016-10-08
  • 1970-01-01
  • 1970-01-01
  • 2021-08-22
相关资源
最近更新 更多