我查看了一堆引用资料,但找不到任何内容来解决我正在尝试做的事情。我是 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/