var list1 = ["pms","lms","nms","qsf"];
var list2 = ["pms","SSS","lms"];
如何将list2与数组项的list1进行比较,如果list2项中的任何一项与list1不匹配,则抛出错误。
我知道这可能是一个简单的问题,但我来自不同的背景,在Javascript中不太好。
答案 0 :(得分:0)
您可以先为list2创建地图
var lookupMap = {}
list2.forEach(function(value){
lookupMap[value] = 1;
});
// now iterate list1
list1.forEach(function(value){
if (!lookupMap[value]) {
//throw error
}
});
答案 1 :(得分:0)
如果数组中的所有元素都在函数中通过测试,则可以使用返回true/false
的{{3}}。
var list1 = ["pms", "lms", "nms", "qsf"];
var list2 = ["pms", "SSS", "lms"];
var result = list2.every(function(e) {
return list1.indexOf(e) != -1;
})
console.log(result)

使用ES6,你可以做同样的事情
var list1 = ["pms","lms","nms","qsf"], list2 = ["pms","SSS","lms"];
var result = list2.every((e) => list1.includes(e));
console.log(result)

答案 2 :(得分:0)
我可能会喜欢这个
var list1 = ["pms","lms","nms","qsf"],
list2 = ["pms","SSS","lms"],
pass = list2.every(e => list1.some(f => f == e));
console.log(pass); // false