2017-02-22 15 views
-2

В чем разница, когда значение возвращаемого массива распечатывается горизонтально и вертикально?В чем разница, когда значение возвращаемого массива печатается горизонтально и вертикально?

var a = [2,3,4,5]; 

var printSquares = function (arr) { 
arr.forEach(function (n) { 
    console.log(n * n); 
}); 

output:4 
     9 
     16 
     25 
vs 

var selfDot = function (arr) { 
return arr.map(function (n) { 
    return n * n; 
}); 
}; 
output: [4,9,16,25] 
+1

Первый пример - запись 1 целых чисел на консольную линию. Второй возвращает массив. – BenM

+0

Можете ли вы объяснить, почему первый пример печатает в строке, а второй печатает в массиве? –

+0

@Elvawang 'console.log' добавляет новую строку после всего, что она печатает. – Carcigenicate

ответ

0

На console.log(n * n);, вы говорите JavaScript, чтобы log на console возвращающийся значение n * n; console.log() возвращает все, что вы передаете ему, как string, и добавляет newline к его концу, следовательно, iterating над array, сообщая ему console.log() что-то каждый раз, когда он итерации будет выдавать возвращаемое значение вашей операции в круглой скобке как a string, прыгая по одной линии каждый раз. Вы говорите это так:

Для каждого п элемент массива, распечатать результат п * п, добавление новой строки.

На вашем втором примере, вместо того, чтобы просто iterating, вы mapping каждый элемент массива, для возвращаемого значения n * n. .map - метод, который возвращает новый массив, значения которого были созданы при повторении через массив. Он обычно используется, когда вы хотите изменить состояние элементов данного массива. На этом примере вы говорите JavaScript, чтобы сделать это:

Вернуться на меня новый массив, основываясь на результатах работы N * N на каждом элементе массива п.

+1

Я вижу, спасибо большое. –

+0

Без проблем :) Если бы этот ответ помог вам, не могли бы вы его одобрить? Благодаря! –

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

  • Нет связанных вопросов^_^