首页 > 解决方案 > 每次执行函数时如何使随机数组项相同

问题描述

这是我尝试过的代码:

<script>
    function random_Card() {
      var colors = ["red", "yellow"];
      var result = colors[Math.floor(Math.random() * colors.length)];
      return result;
    }
    
    document.write(
      '<div class="frontface"  style=background-color:' + random_Card() + "></div>"
    );
    document.write(
      '<div class="frontface"  style=background-color:' + random_Card() + "></div>"
    );
</script>

result返回变量时,它是不一样的,例如,如果我执行random_Card()两次,我得到“红色”,而在第二次执行中,我得到“黄色”,但无论我执行多少次该函数,我都希望它是相同的。谢谢。

标签: javascript

解决方案


如前所述,此函数将始终返回一个随机数,因为它每次都会执行。您可以做的是执行该函数一次,然后将其修复为创建的结果。第二次调用该函数时,它只会产生完全相同的对象,而不再执行任何操作。

var random_Card = function(){
  var colors = [
    "red",
    "yellow"
  ];
  var result = colors[Math.floor(Math.random()*colors.length)];
  random_Card = function() { return result; };
  return result;
};

推荐阅读