1

我最近正在制作一个小脚本,它会询问电视连续剧的标题并将它们以数组的形式记录在控制台上。我使用了一个关键字来停止“终止”循环,它不应该包含在内,但是,以下代码将关键字添加到数组中。

//-----------------首例代码------------------//

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);

我的问题是,与第一个案例代码的第一个案例场景相比,在循环中使用布尔值作为表达式来评估结果如何影响结果?

4

1 回答 1

1

基本上,您需要在输入和将字符串添加到数组之间进行检查。

为了永远循环,您需要一个计算结果为值的表达式。该值是一个常量值,而不是使用两个字符串进行检查series2 !== 'terminate'

您可以使用 if 语句和break.

另外,您可以检查null并使用 for 的返回值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);

于 2022-02-14T12:50:08.353 回答