gpt4 book ai didi

javascript - 使用随机选择从数组返回函数值

转载 作者:行者123 更新时间:2023-12-02 17:46:20 25 4
gpt4 key购买 nike

返回数组内函数的计算值时遇到了一些问题。并感谢解决方案中的任何帮助以及有关解决此类问题的更优雅方法的建议(即解决此问题的更合乎逻辑的方法)

我正在尝试创建一个程序,生成两个随机数字和一个应用于所述数字的随机运算符。

var num1 = Math.floor(Math.random() * 20 + 1);
console.log(num1);
var num2 = Math.floor(Math.random() * 1000 + 21);
console.log(num2);

我最初是这样设置随机运算符的:

var ops = ["+", "-", "*", "/"] 

我尝试使用 Math.random 函数为 ops 数组选择随机索引号,但遇到了各种错误,因此我开始搜索并在这里找到了一些有用的建议:How to use Javascript to ask the user random math questions? ,但无法找到从对象中检索随机值的方法,(参见 Access non-numeric Object properties by index? ),因此我改回使用 4 个函数的数组,每个函数都有一个计算随机数的返回值( num1 和 num2) 基于随机运算符。

我已经让一切正常工作(即测试了我的随机数函数是否正常工作,甚至看到我的 newOp 变量每次都从 ops 数组返回不同的函数),但这是我无法得到的程序要做的事情:返回函数的计算值。当我

alert(newOp)

我希望它提醒函数的而不是函数本身。 (例如警报 -> 20 而不是我当前得到的: --> function a(){return (num1 + num2)}

这是我的代码。欢迎所有建议和见解!只是想学习。

var num1 = Math.floor(Math.random() * 20 + 1);
console.log(num1);
var num2 = Math.floor(Math.random() * 1000 + 21);
console.log(num2);
var ops = [
function a(){return (num1 + num2)},
function b(){return (num1 - num2)},
function c(){return (num1 * num2)},
function d(){return (num1 / num2)}];

var problem = function () {
var random = Math.floor(Math.random()* 4 + 0);
var newOp = ops[random];
alert(newOp);
};
problem();

最佳答案

我认为你只需要将其更改为:

alert(newOp());

您的数组包含对函数的引用,但您没有调用它们。

关于javascript - 使用随机选择从数组返回函数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21716631/

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