我有一个逻辑问题,我不确定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>

10-06 07:47