使用布尔值 "True" 作为表达式在 while 循环中求值
Using the boolean "True" as an expression to evaluate in a while loop
我最近正在制作一个小脚本,它会询问电视剧的标题并将它们记录在控制台的数组中。我使用了一个关键字来停止循环,它是 'terminate' 并且它不应该被包括在内,但是,下面的代码将关键字添加到数组中。
//----------------第一个案例代码--------------------//
let lista = [];
let series;
function collect(){
while (series !== 'terminate'){
series = prompt('Add a tv show');
lista.push(series);
}
}
collect();
console.log(lista);
更令人困惑的是,在下一段代码中,我设法让脚本将关键字排除在数组之外。
//------------------------第二种情况代码------------ --------------//
let lista2 = [];
let series;
while (true){
series2 = prompt('add tv serie');
if (series2 !=='terminate'){
lista2.push(series2);
}else{
break;
}
}
console.log(lista2);
我的问题是,与使用第一种情况代码的第一种情况相比,使用布尔值作为表达式在循环中求值会如何影响结果?
基本上您需要在输入和将字符串添加到数组之间进行检查。
为了永远循环,您需要一个计算结果为 truthy 值的表达式。该值是一个常量值,与使用两个字符串 series2 !== 'terminate'
.
的检查相反
您可以使用 if 语句和 break
.
终止内部循环
此外,您可以检查 null
并使用 prompt
的 return 值来取消。
function collect() {
while (true) {
const series = prompt('Add a tv show');
if (series === 'terminate' || series === null) break;
lista.push(series);
}
}
let lista = [];
collect();
console.log(lista);
另一种方法,使用 prompt
两次。
function collect() {
let series = prompt('Add a tv show');
while (series !== 'terminate' && series !== null) {
lista.push(series);
series = prompt('Add a tv show');
}
}
let lista = [];
collect();
console.log(lista);
我最近正在制作一个小脚本,它会询问电视剧的标题并将它们记录在控制台的数组中。我使用了一个关键字来停止循环,它是 'terminate' 并且它不应该被包括在内,但是,下面的代码将关键字添加到数组中。
//----------------第一个案例代码--------------------//
let lista = [];
let series;
function collect(){
while (series !== 'terminate'){
series = prompt('Add a tv show');
lista.push(series);
}
}
collect();
console.log(lista);
更令人困惑的是,在下一段代码中,我设法让脚本将关键字排除在数组之外。
//------------------------第二种情况代码------------ --------------//
let lista2 = [];
let series;
while (true){
series2 = prompt('add tv serie');
if (series2 !=='terminate'){
lista2.push(series2);
}else{
break;
}
}
console.log(lista2);
我的问题是,与使用第一种情况代码的第一种情况相比,使用布尔值作为表达式在循环中求值会如何影响结果?
基本上您需要在输入和将字符串添加到数组之间进行检查。
为了永远循环,您需要一个计算结果为 truthy 值的表达式。该值是一个常量值,与使用两个字符串 series2 !== 'terminate'
.
您可以使用 if 语句和 break
.
此外,您可以检查 null
并使用 prompt
的 return 值来取消。
function collect() {
while (true) {
const series = prompt('Add a tv show');
if (series === 'terminate' || series === null) break;
lista.push(series);
}
}
let lista = [];
collect();
console.log(lista);
另一种方法,使用 prompt
两次。
function collect() {
let series = prompt('Add a tv show');
while (series !== 'terminate' && series !== null) {
lista.push(series);
series = prompt('Add a tv show');
}
}
let lista = [];
collect();
console.log(lista);