比较列表并引发错误

时间:2016-06-23 12:42:22

标签: javascript arrays

var list1 = ["pms","lms","nms","qsf"];

var list2 = ["pms","SSS","lms"];

如何将list2与数组项的list1进行比较,如果list2项中的任何一项与list1不匹配,则抛出错误。

我知道这可能是一个简单的问题,但我来自不同的背景,在Javascript中不太好。

3 个答案:

答案 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