首页 > 解决方案 > 在JS中检查一个数组的值与另一个数组的值

问题描述

我正在尝试检查第一个数组是否包含与第二个数组相同的值。但是我对我的代码感到困惑。

第一个问题是:如果第一个数组中的所有字母都包含在第二个数组中,为什么我的代码会运行我的 else 语句?它将运行 2 行“这无效”

第二个问题是:如果我的第一个数组包含一个重复的字母,它仍然会通过检查,例如 ["a", "b", "a", "d", "e", "f"]; 即使第一个有两个 a,它也会再次看到相同的“a”。任何人都知道解决这个问题的方法。

很抱歉我的冗长问题,但我希望这是有道理的。谢谢 :)

var letters = ["a", "b" , "c", "d", "e", "f"];
var otherLetters = ["a","b", "c" , "d", "e", "f"];

var i = -1;

while(i<=letters.length){



i++;
    if(otherLetters.includes(letters[i])){
        console.log("This is valid");
    }

    else 

    console.log("This is not valid");



}

标签: javascriptarraysinclude

解决方案


你没有关闭括号。而且您的循环非常混乱,请使用foreach。这是一个工作示例:

const letters = ["a", "b" , "c", "d", "e", "f"];
const otherLetters = ["a","b", "c" , "d", "e", "f"];

letters.forEach(el => {
  if (otherLetters.includes(el)) {
    console.log(el + 'is valid');
  } else {
    console.log(el + 'is not valid');
  }
});

推荐阅读