1 回答
TA贡献1818条经验 获得超8个赞
number这是一个有点肮脏的黑客,但它应该满足除了、count、 和 之外不factorial使用其他变量的条件。
let number = 5;
let factorial = 120;
// ^ Do your own calculation for this
alert(`The factorial of ${number} is ${Array.from(Array(number + 1).keys()).slice(1).reverse().join("*")}=${factorial}`)
那么这是怎么回事呢?我们使用插值模板字符串来生成所需的输出,其中的表达式${these things}被评估为字符串。我们在那里放了什么乱七八糟的东西?
Array.from(Array(number + 1).keys())
上面的表达式创建了数组[0,1,2,3,4,5]。
.slice(1)给我们[1,2,3,4,5]
.reverse()给我们[5,4,3,2,1]
join("*")给我们"5*4*3*2*1"
当所有这些放在一起时,我们得到了The factorial of 5 is 5*4*3*2*1=120
瞧!输出以所需的格式打印,而不引入任何新变量。
编辑:哦,您不需要为此使用内插字符串。您也可以像在问题中所做的那样将常规字符串连接在一起。例如
"The factorial of " + factorial + " is " + Array.from(Array(number + 1).keys()).slice(1).reverse().join("*") + "=" + factorial
添加回答
举报