我正在尝试遍历一个数组,如果有任何匹配的元素,它应该将 true 推送到一个新数组,否则返回 false。
const wordPerformance = []
const wordsReviewed = "candy, cattle, cat, call, cheat";
const wordsIncorrect = "candy, cattle, call, cheat";
wordsReviewed.split(/,\s?/).forEach((word) => {
if (wordsIncorrect.includes(word)) {
wordPerformance.push(false);
} else {
console.log(word) //unreachable, though 'cat' should be logged
wordPerformance.push(true);
}
});
console.log(wordPerformance);
按照这个逻辑,wordPerformance 应该返回
[false, false, true, false, false]
然而,它正在返回
[false, false, false, false, false]
也许有什么我没有看到?
最佳答案
您必须首先拆分 wordsIncorrect
字符串,就像您对 wordsReviewed
所做的那样,这样它就可以与项目进行比较,而不包括包含某些内容的字符串结束就像匹配“猫”和“牛”
这是固定的例子
const wordPerformance = []
const wordsReviewed = "candy, cattle, cat, call, cheat";
const wordsIncorrect = "candy, cattle, call, cheat";
const wordsIncorrectSplitted = wordsIncorrect.split(/,\s?/);
wordsReviewed.split(/,\s?/).forEach((word) => {
if (wordsIncorrectSplitted.includes(word)) {
wordPerformance.push(false);
} else {
console.log(word) //unreachable, though 'cat' should be logged
wordPerformance.push(true);
}
});
console.log(wordPerformance);
关于javascript - 如果 else 没有按预期工作,我的逻辑有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70178019/