【发布时间】:2020-04-27 08:37:40
【问题描述】:
起初我将 return 放在 for 循环中,但只显示第一个结果。 我做了一些研究,我意识到循环最终满足了条件,因此它在第一个结果处停止。 我已经把它从循环中取出,现在它只提供最后一个结果。 这不是我第一次遇到这个问题,尽管我正在寻找解决方案,但我无法理解我做错了什么。
function diamond(n) {
let space = " "; //spaces
let newLine = "\n"
let aster = "*";
let multi = (n - 1) / 2; //variable in for loop
let result = ""
if ((n % 2 === 0) || n < 1) {
return null
} else if (n === 1) {
return aster
} else {
for (let i = 0; i < multi; i++) {
result = space.repeat(multi - i) + aster.repeat(1 + (i * 2)) + space.repeat(multi - i) + newLine;
}
return result // gives only the last result
}
}
console.log(diamond(7)) // expected " *\n ***\n*****\n ***\n *\n"
console.log(diamond(1)) // expected "*"
console.log(diamond(2)) // expected null
【问题讨论】:
-
试试
result +=而不是result =
标签: javascript loops for-loop return