javascript - 如果 else 没有按预期工作,我的逻辑有问题吗?

标签 javascript arrays loops if-statement foreach

我正在尝试遍历一个数组,如果有任何匹配的元素,它应该将 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);

enter image description here

关于javascript - 如果 else 没有按预期工作,我的逻辑有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70178019/

相关文章:

javascript - 一次返回数组的 x 项

javascript - 无需点击按钮即可刷新 div

JavaScript 更改的 DOM 值在 JS 函数中不起作用

javascript - jQuery,根据数据属性设置事件类

javascript - 函数完成时 Nodejs 回调下一个循环

java - 将文本文件中的矩阵存储到二维数组中

javascript - 按属性查找重复对象并使用 Javascript 或 UnderscoreJS 合并

php - 令人困惑的 foreach 循环显示数组的值

C - 继续陷入无限循环

python - 如何不将 False/其他值评估为 0