2016-12-16 152 views
-6

一般来说,'forEach'不会返回任何数组,因为'map'返回一个。但是,在我的情况下,它返回一个。下面是我的代码。我有点困惑。任何帮助将不胜感激。.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

它不返回任何东西,你只是修改它里面阵列 – charlietfl

+2

你是推到了'arr_temp'然后' console.log(arr_temp)'它。 'return'实际上并没有做任何事情。 –

+0

此代码通过将这些值推送到您的临时数组来描述您所获得的输出。什么是预期的输出? –

回答

2

它不返回任何东西。您可以检查通过注销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

+0

@Gothodo但它正在返回arr_temp中的更新值吗? –

+0

@mohanbabu编号它只是修改'arr_temp'数组。 –

+3

@mohanbabu:不,它不返回任何东西。 **您**正在通过执行'arr_temp.push(i + i)'将值添加到'arr_temp'。该字面意思是“将'i + i'添加到由'arr_temp''引用的数组中。 –