javascript - 在 JavaScript 中包含数组问题
问题描述
我在 JavaScript 中遇到了一个简单逻辑的问题,它检查数组中出现的数字。问题定义如下:
没有匹配 0
确保您的应用程序可以容纳重复数字。例如,如果用户猜测 1、2 和 3,并且随机生成的数字是 1、1 和 1,则不要将三个正确猜测的功劳归功于用户 - 只有一个。将文件另存为 Lottery。
主要问题发生在if (lotteryResults.includes(guesses[j]))
. 我不知道为什么当我在includes
.
解决方案
问题是prompt()
返回一个应该转换为数字的字符串。您可以使用+
将其转换为数字
for (var i = 1; i <= TIMES; i++) {
var userInput = +prompt("Enter a guess");
guesses.push(userInput);
}
第二个问题是您正在比较数组guesses == lotteryResults
。这永远不会回来true
。您可以使用join()
然后比较
if (guesses.join('') == lotteryResults.join(''))
var TIMES = 3;
var userFirstGuess;
var userSecondGuess;
var userThirdGuess;
var guesses = [];
var firstRandom = Math.floor(Math.random() * 3) + 1;
var secondRandom = Math.floor(Math.random() * 3) + 1;
var thirdRandom = Math.floor(Math.random() * 3) + 1;
for (var i = 1; i <= TIMES; i++) {
var userInput = +prompt("Enter a guess");
guesses.push(userInput);
}
alert(guesses);
var winTen = 10;
var WinHun = 100;
var winThoun = 1000;
var winMillion = 10000;
var winZero = 0;
var lotteryResults = [];
lotteryResults.push(firstRandom);
lotteryResults.push(secondRandom);
lotteryResults.push(thirdRandom);
if (guesses.join('') == lotteryResults.join('')) {
alert("You have won: $ " + winMillion);
} else {
var matchCount = 0;
for (var j = 0; j < guesses.length; j++) {
if (lotteryResults.includes(guesses[j])) {
matchCount++
var index = lotteryResults.indexOf(guesses[j]);
lotteryResults.splice(index);
alert('Lottery ' + lotteryResults);
}
}
switch (matchCount) {
case 0:
alert("You have won: $ " + winZero);
break;
case 1:
alert("You have won: $ " + winTen);
break;
case 2:
alert("You have won: $ " + winHun);
break;
case 3:
alert("You have won: $ " + winThoun);
break;
}
}
推荐阅读
- android - 如何获得多个底部表,一个在另一个之上正常工作?
- javascript - 在 webpack config 中定义多个 babel 预设配置
- docker - Docker 服务没有响应
- python - NameError:未定义名称“命令”
- javascript - 在 Javascript 中,我的 onEvent 没有被调用,而其他 onEvents 被调用
- jenkins - 有没有办法阻止重复的 Jenkins 失败通知被发送到 slack 或电子邮件?
- javascript - SigmaJS 边缘标签不显示
- android - 与recyclerview android中的自定义视图绑定
- r - 按组检测序列并计算子集的新变量
- amazon-web-services - 使用云形成创建安全组时出现“属性 IpProtocol 不能为空”错误