2017-02-22 56 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);,你在consolen * n返回值告訴JavaScript來log; console.log()將你傳遞給它的任何東西作爲string返回,並在其末尾添加一個newline,因此iteratingarray的同時告知console.log()每次它迭代時,會在圓括號內輸出操作的返回值,作爲一個string,每次跳一行。你告訴它這一點:

對於數組的每個ñ元素,打印N * N結果,添加一個換行符。

關於第二個例子,而不是簡單地iterating,你mapping陣列中的每個元素,給n * n返回值。 .map是一種返回新數組的方法,該數組的值在遍歷數組時迭代產生。當你想改變給定數組的元素狀態時,它通常被使用。基於每個ň數組元素上運行N * N的結果

還給我一個新的數組,:在這個例子中,你告訴JavaScript來做到這一點。

+1

我明白了,非常感謝。 –

+0

沒問題:)如果這個答案對你有幫助,你可以批准嗎?謝謝! –