這個問題在這里已經有了答案: return 是否停止回圈? (7 個回答) 1 小時前關閉。
請注意 return 單詞的不同位置。它們實際上如何以不同的方式影響輸出?
let babyNames = []
const convertToBaby = (arr) => {
for (let i = 0; i < arr.length; i = 1) {
babyNames.push('baby ' arr[i])
}
return babyNames
}
const animals = ['panda', 'turtle', 'giraffe', 'hippo', 'sloth', 'human'];
console.log(convertToBaby(animals))
let babyNames = []
const convertToBaby = (arr) => {
for (let i = 0; i < arr.length; i = 1) {
babyNames.push('baby ' arr[i])
return babyNames
}
}
const animals = ['panda', 'turtle', 'giraffe', 'hippo', 'sloth', 'human'];
console.log(convertToBaby(animals))
uj5u.com熱心網友回復:
TL;DR:您將回傳(停止后續執行)回圈的第一次運行,在這種情況下,第一次迭代的值為 ["baby panda"]
詳細說明:如果你想看看回圈是如何作業的,你可以給出諸如 之類的東西console.log(i),它反過來會輸出諸如:
0
1
2
...
(size of list - 1, since it started in 0)
因此,例如,如果您更改為以下內容:
let babyNames = []
const convertToBaby = (arr) => {
for (let i = 0; i < arr.length; i = 1) {
babyNames.push('baby ' arr[i])
if (i === 1) {
return babyNames
}
}
}
const animals = ['panda', 'turtle', 'giraffe', 'hippo', 'sloth', 'human'];
console.log(convertToBaby(animals))
輸出將是["panda", "turtle"],因為我們在回圈的第二次運行時停止(記住它從 0 開始,所以 i === 1 意味著它的第二次迭代)
uj5u.com熱心網友回復:
通常return,函式體內的任何地方都會在執行命中它的那一刻停止整個函式的執行。
在這種特殊情況下return,for塊內將在第一次迭代后停止執行。
如果你把它放在回圈之外,那么回圈將首先執行直到結束,然后執行將命中return.
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/395766.html
標籤:javascript
上一篇:動態填充物件以回應陣列中的值
