2016-12-16 2 views
-6

Как правило, сказано, что «forEach» не возвращает массив, где «карта» возвращает один. Однако в моем случае он возвращает 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

он не возвращает ничего, вы просто модифицируя массив внутри него – charlietfl

+2

Вы подталкиваете в 'arr_temp', а затем' console.log (arr_temp) 'it. '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', выполняя' arr_temp.push (i + i) '. Эта строка буквально означает «добавить« i + i »в массив, на который ссылается' arr_temp'. –

Смежные вопросы