gpt4 book ai didi

javascript - 将变量函数传递给数组 [Javascript]

转载 作者:行者123 更新时间:2023-11-30 09:58:30 26 4
gpt4 key购买 nike

我查看了一堆引用资料,但找不到任何内容来解决我正在尝试做的事情。我是 Javascript 和 JQuery 的新手,所以我觉得我一定遗漏了一些东西。

我为 D&D 统计数据生成器创建了一个骰子滚筒。骰子滚筒工作正常:

function makeDie(sides) {
var die = function () {
return 1 + Math.random() * sides | 0;
};

die.times = function (count) {
var rolls = [];
for(var i = 0 ; i < count ; i++) {
rolls.push(this());
}
return rolls;
};

return die;
}

var dice = {
d4: makeDie(4),
d6: makeDie(6),
d8: makeDie(8),
d10: makeDie(10),
d12: makeDie(12),
d20: makeDie(20),
};

然后我可以像这样从那里掷随机统计数据(掷 4d6,丢弃最低的骰子):

var stat = function (){
x = dice.d6.times(4)
x = x.sort();
s = x[1] + x[2] + x[3]
return s
}

但是我想将统计数据传递到一个数组中:

var stats = [];
for (i=0; i<6; i++) {
stats.push(stat);
}
var stats = stats.sort();

但我得到的输出是以明文形式打印了 6 次的函数:

function (){ x = dice.d6.times(4) x = x.sort(); s = x[1] + x[2] + x[3] return s },

function (){ x = dice.d6.times(4) x = x.sort(); s = x[1] + x[2] + x[3] return s },

function (){ x = dice.d6.times(4) x = x.sort(); s = x[1] + x[2] + x[3] return s },

function (){ x = dice.d6.times(4) x = x.sort(); s = x[1] + x[2] + x[3] return s },

function (){ x = dice.d6.times(4) x = x.sort(); s = x[1] + x[2] + x[3] return s },

function (){ x = dice.d6.times(4) x = x.sort(); s = x[1] + x[2] + x[3] return s }

我错过了什么?

最佳答案

您将 stat 函数推送到数组,而不是调用该函数的结果。你需要像这样在 stat 之后加上 ():

var stats = [];
for (i=0; i<6; i++) {
stats.push(stat());
}
var stats = stats.sort();

关于javascript - 将变量函数传递给数组 [Javascript],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32773279/

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