我有一个逻辑问题,我不确定JavaScript是否提供解决此问题的特殊方法。在下面的简化测试代码中,我使用一个函数创建一个随机数,并将其两次放入数组值中。我需要在两个地方使用相同的随机数,但是很明显,如果我两次调用randomNumber()
,则会得到两个不同的返回值。我知道我可以将返回值存储在变量中并多次调用该变量。但是JavaScript是否提供其他方法来解决此类问题?
"use strict";
let myArray = [
`Use a random number once here, ${randomNumber()}, and the same value again here ${randomNumber()}.`
];
function randomNumber() {
return Math.random() * 10;
}
document.querySelector('.output').textContent = myArray[0];
<div class="output"></div>
最佳答案
您可以将数组元素定义为返回所需字符串的IIFE,并传递randomNumber()
的(单个)结果:
"use strict";
let myArray = [
((rnd) => `Use a random number once here, ${rnd}, and the same value again here ${rnd}.`)(randomNumber())
];
function randomNumber() {
return Math.random() * 10;
}
document.querySelector('.output').textContent = myArray[0];
<div class="output"></div>