gpt4 book ai didi

带有随机变量的Javascript if else语句

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

我读到有关战利品箱系统的信息,想制作属于我自己的幸运数字计算器。

我有 2 个数组,一个是常规数字,一个是获胜数字。两个数字将被放入一个变量中,如果这两个数字都在获胜数组中,您就赢了!

现在我遇到的问题是,当我随机生成数字时,我的 if else 语句不再起作用。即使数字正确,它也总是会说 false。

如果您声明变量不是随机的,它确实有效(如下面的代码所示)。

如何使 if else 语句与随机生成器一起工作?

代码:

function go(){

var Numbers = ['one', 'two', 'three','four','five'];
var LuckyNumbers = ['three', 'four', 'seven']

var num1, num2;

num1 = Numbers.splice(Math.floor(Math.random() * Numbers.length), 1);//This doesnt work..
num2 = Numbers.splice(Math.floor(Math.random() * Numbers.length), 1);//This doesnt work..

// num1 ="three"; -> this works but it is not random
// num2 ="four"; -> this works but it is not random

if([num1, num2].every(item => LuckyNumbers.includes(item))) { //always false when using the randoms.
console.log("yep")
} else{
console.log('nope')
}

最佳答案

这与您的 if 语句完全无关。 num1num2 没有存储您认为它们存储在您编写的代码中的内容。

Array.prototype.splice返回新数组中删除的元素。即使只有一个,您也需要在索引 0 处引用它:

var Numbers = ['one', 'two', 'three','four','five'];
var LuckyNumbers = ['three', 'four', 'seven']

var num1, num2;

num1 = Numbers.splice(Math.floor(Math.random() * Numbers.length), 1)[0];
num2 = Numbers.splice(Math.floor(Math.random() * Numbers.length), 1)[0];

if([num1, num2].every(item => LuckyNumbers.includes(item))) {
console.log("yep")
} else{
console.log('nope')
}

编辑:为了给您一个更完整的答案——请注意,在这里使用 splice 并不像其他人所说的那么严重。是的,它改变了 Numbers 数组,但是每次调用 go 函数时都会重新创建 Numbers 数组。

在这种情况下,这是解决此问题的完全合理的方法,但如果您想要重构您的代码,使 NumbersLuckyNumbers 存储在某个父级中范围,您需要了解这些突变:

const Numbers = ['one', 'two', 'three','four','five'];
const LuckyNumbers = ['three', 'four', 'seven']

function go() {
// Slice with no arguments creates a clone of an array...
var numbers = Numbers.slice();

// Note I'm calling splice on `numbers` with a small `n` here...
var num1 = numbers.splice(Math.floor(Math.random() * Numbers.length), 1)[0];
var num2 = numbers.splice(Math.floor(Math.random() * Numbers.length), 1)[0];

if([num1, num2].every(item => LuckyNumbers.includes(item))) {
console.log("yep")
} else{
console.log('nope')
}
}

关于带有随机变量的Javascript if else语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50687890/

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