javascript - 在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");
}
解决方案
你没有关闭括号。而且您的循环非常混乱,请使用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');
}
});
推荐阅读
- google-apps-script - 如何仅从范围中获取过滤后的值?
- ruby-on-rails - 每当 gem 出现在本地时,我都会遇到问题
- ios - 从文本字段在 tableView 中添加新单元格
- amazon-web-services - aws glue python shell 作业与 spark 作业的最佳用例是什么?
- scala - 更新映射定义是使用 Scala 的 ELlasticSearch
- javascript - 不同数组中相同对象的内存分配
- laravel - 我怎样才能重写它,这样它就不需要在 foreach 之外的 return 语句
- c# - 从另一个窗口访问 MainWindow 列表(保护)
- tableau-api - tableau - 自动更新工作台中所有数据源的密码
- xamarin.forms - SwipeCardView 在滚动视图上效果不佳