我最近正在制作一个小脚本,它会询问电视剧标题并将它们记录在控制台上的数组中。我使用了一个关键字来停止“终止”循环,并且不应包含它,但是,以下代码将关键字添加到数组中。
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
的返回值来取消。
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);