gpt4 book ai didi

Javascript 检查函数的结果是否已输出,如果是,则运行该函数

转载 作者:行者123 更新时间:2023-12-03 08:21:45 25 4
gpt4 key购买 nike

我为我糟糕的英语提前道歉。

我制作了一个 JavaScript 函数 gen(),它通过添加从两个数组中随机选择的两个值来生成一个值。

我想创建一个运行gen()的函数,并且仅当以前从未输出过该值时才输出该值,否则将执行函数gen()再次。

提前致谢。

gen()函数的代码:

function gen() {
var s = ["a", "b"];
var c = ["c", "d"];

var MbSubj = ["Hello", "Hi", "Hey"];
var MaSubj = ["John", "Jack", "Matt"];
var FbSubj = ["Lara", "Juliet"];
var FaSubj = ["Lora", "Elise"];

var sRand = s[Math.floor(Math.random() * s.length)];
var cRand = c[Math.floor(Math.random() * c.length)];
var FbSubjRand = FbSubj[Math.floor(Math.random() * FbSubj.length)];
var MbSubjRand = MbSubj[Math.floor(Math.random() * MbSubj.length)];
var FaSubjRand = FaSubj[Math.floor(Math.random() * FaSubj.length)];
var MaSubjRand = MaSubj[Math.floor(Math.random() * MaSubj.length)];

function mb() {
return MbSubjRand + MaSubjRand;
}

function ma() {
return MaSubjRand + MbSubjRand;
}

function fb() {
return FbSubjRand + MaSubjRand;
}

function fa() {
return FaSubjRand + MbSubjRand;
}

if (sRand === "a" && cRand === "b") {
mb();
} else if (sRand === "b" && cRand === "c") {
ma();
} else if (sRand === "a" && cRand === "d") {
fb();
} else {
fa();
}
}

最佳答案

保留变量,如果已经运行gen,如果是,则不再运行,如果没有,则运行:

JSFiddle:http://jsfiddle.net/0j8wqswn/

function gen(){
alert('this is the gen function')
}


(function(){
var alreay_run=false;
new_function=function(){
if(alreay_run) return
alreay_run=true
gen();
}
})()


//Let's Test
new_function()
new_function()
new_function()

//You will see alert only one time

关于Javascript 检查函数的结果是否已输出,如果是,则运行该函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33721961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com