你好,我是JavaScript的新手,实际上我对JavaScript一无所知。我试图为一个游戏制作一个工具,你点击一个按钮生成一个随机数,而不是你有一个平衡,它上升了一个特定的数量,根据你滚动的数字范围。假设1-10值1美元,11-20值2美元,21-30值3美元。也许你可以选择26,14,18和8。那就值8美元。我现在的问题是给一个特定的数字分配一个不同的值,而不是让余额按与数字相关的数量来增加。我不是在找具体的答案。我不想要施舍,我也不想找人免费为我做这份工作。但是,如果有人能帮我解决这个问题,或者带我去一个我能找到解决办法的地方,我会非常感激的。这是我目前所拥有的,离它需要的地方还很远。
function Random() {
var rnd = Math.floor(Math.random() * 10000);
document.getElementById('tb').value = rnd;
const numberElement = document.getElementById("bal");
const number = parseInt(numberElement.innerText, 10) + 1;
numberElement.innerText = number;
}<form name="rn">
<input type="text" id="tb" name="tb" />
<input type="button" value="Random Number" onclick="Random();" />
</form>
<h1>Balance:</h1>
<h2 id="bal">0</h2>
发布于 2021-12-22 20:50:00
假设该值不能通过直接算术从数字中直接计算(请参阅Pointy's comment),您可以定义一个“桶”数组,其中每个条目都有一个最小值、一个最大值和一个值,然后为任何给定值找到桶:
const buckets = [
{
min: 0,
max: 5,
value: 5
},
{
min: 6,
max: 10,
value: 10
},
{
min: 11,
value: 100
}
];
function findBucket (value) {
return buckets.find(b => (
(b.min == null || b.min <= value) // either bucket doesn't have a min or min is less than value…
&& (!b.max || b.max >= value)) // …and either bucket doesn't have a max or max is greater than value
);
}
function getBucketValue (rollValue) {
return findBucket(rollValue)?.value || 0; // return the bucket value, or zero if no bucket was found
}
console.log(getBucketValue(2)) // 5
console.log(getBucketValue(8)) // 10
console.log(getBucketValue(35)) // 100
console.log(getBucketValue(9999)) // 100
console.log(getBucketValue(-1)) // 0
https://stackoverflow.com/questions/70454849
复制相似问题