Javascript 跳过 for 循环
Javascript skipping for loop
我正在使用 JS 和 inquirer
编写 CLI 应用程序。从下面的代码中,我希望从两个 for 循环中得到一些 console.log() 。但是,没有 console.log,即使 checkChoices
和 answers
都包含值。
JS
view(){
let checkChoices = [];
for(let i = 0; i < this.list.length; i++){
checkChoices.push(this.list[i].text);
}
let viewList = [
{
type: 'checkbox',
name: 'command',
message: 'Your Checklist',
choices: checkChoices
}
]
console.log(checkChoices.length);
inquirer.prompt(viewList).then((answers) => {
for(let i = 0; i < answers.length; i++){
let answer = answers[i];
console.log("answer", answer)
for(let j = 0; j < checkChoices.length; j++){
console.log("choice", checkChoices[j])
if(answer == checkChoices[j]){
this.list[j].complete = true;
}
}
}
console.log(this.list);
// this.ask();
})
}
};
通过评论发现answers
是一个对象,而不是一个数组。对象本身不具有 length
属性.
由于对象有一个 属性 of command
和一个数组值,假设逻辑应该循环 answers.command
,而不是试图循环答案对象。
我正在使用 JS 和 inquirer
编写 CLI 应用程序。从下面的代码中,我希望从两个 for 循环中得到一些 console.log() 。但是,没有 console.log,即使 checkChoices
和 answers
都包含值。
JS
view(){
let checkChoices = [];
for(let i = 0; i < this.list.length; i++){
checkChoices.push(this.list[i].text);
}
let viewList = [
{
type: 'checkbox',
name: 'command',
message: 'Your Checklist',
choices: checkChoices
}
]
console.log(checkChoices.length);
inquirer.prompt(viewList).then((answers) => {
for(let i = 0; i < answers.length; i++){
let answer = answers[i];
console.log("answer", answer)
for(let j = 0; j < checkChoices.length; j++){
console.log("choice", checkChoices[j])
if(answer == checkChoices[j]){
this.list[j].complete = true;
}
}
}
console.log(this.list);
// this.ask();
})
}
};
通过评论发现answers
是一个对象,而不是一个数组。对象本身不具有 length
属性.
由于对象有一个 属性 of command
和一个数组值,假设逻辑应该循环 answers.command
,而不是试图循环答案对象。