1

当用户输入 5 时,我试图让 while 循环中断,但为什么这段代码不起作用:

var arr = [];
while(!arr.includes(5)){
    arr.push(prompt("Enter a Number"));

}
alert("NUmber is here"); 
4

4 回答 4

0

prompt将始终返回一个字符串,而不是一个数字。改成:

while(!arr.includes('5')){

var arr = [];
while(!arr.includes('5')){
    arr.push(prompt("Enter a Number"));

}
alert("NUmber is here"); 

于 2018-09-02T07:12:37.443 回答
0

从提示返回的值是一个字符串,因此将其转换为数字然后进行检查

var arr = [];
while(!arr.includes(5)){
    arr.push(parseInt(prompt("Enter a Number")));

}
alert("NUmber is here");
于 2018-09-02T07:12:59.480 回答
0
var arr = [];
while(!arr.includes(5)){
  var num = parseInt(prompt("Enter a Number"));
  arr.push(num);
}
alert("NUmber is here");

或者您可以使用:

var arr = [];
while(!arr.includes('5')){
  arr.push(prompt("Enter a Number"));
}
alert("NUmber is here");

因为严格包括检查相等性。

于 2018-09-02T07:32:26.203 回答
0

includes方法使用严格相等 ( ===) 来检查特定值是否在数组中。 prompt将始终返回一个字符串,而不是一个数字,因此整数 5 永远不会在数组中。但是,字符串“5”将是。

当您将代码更改为while(!arr.includes('5')){(如CertainPerformance 指出的那样,它将起作用。

于 2018-09-02T07:16:29.913 回答