我试图在用户输入5时使while循环中断,但是为什么此代码不起作用:
var arr = [];
while(!arr.includes(5)){
arr.push(prompt("Enter a Number"));
}
alert("NUmber is here");
答案 0 :(得分:0)
prompt
将始终返回字符串,而不是数字。更改为:
while(!arr.includes('5')){
var arr = [];
while(!arr.includes('5')){
arr.push(prompt("Enter a Number"));
}
alert("NUmber is here");
答案 1 :(得分:0)
从提示符返回的值是一个字符串,因此将其转换为数字然后进行检查
var arr = [];
while(!arr.includes(5)){
arr.push(parseInt(prompt("Enter a Number")));
}
alert("NUmber is here");
答案 2 :(得分:0)
@{
var service = Context.RequestServices.GetService(typeof(Microsoft.AspNetCore.Hosting.IHostingEnvironment)) as Microsoft.AspNetCore.Hosting.IHostingEnvironment;
}
<span>Environment: @service.EnvironmentName</span>
<span>WebRootPath: @service.WebRootPath</span>
方法使用严格相等(includes
)检查数组中是否有特定值。 ===
将始终返回字符串,而不是数字,因此整数5将永远不在数组中。但是,字符串“ 5”将是。
当您将代码更改为prompt
时(正如SomePerformance指出的那样,它将起作用。
答案 3 :(得分: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");
因为严格包含检查相等性。