我有一个对象
obj1 = {
key: 'a,b,c,d'
}
另一个对象
obj2 = {
key: 'b,a'
}
我想检查obj2
中是否包含obj1
值。
我尝试了以下方法,但它为上述两个对象返回false
function includesValues(obj1, obj2) {
return Object.values(obj1).every(v1 =>
Object.values(obj2).some(v2 =>
v2.split(',').forEach((val) => {
v1.includes(val.toString());
})
)
);
}
http://jsfiddle.net/jhuman/4tv9cwjd/1705/
我在这里做错了什么?
答案 0 :(得分:2)
您必须返回v1.includes语句,因为它不会从块中隐式返回。
obj1 = {
key: 'a,b,c,d'
};
obj2 = {
key: 'a,b'
};
function includesValues(obj1, obj2) {
return Object.values(obj1).every(v1 =>
Object.values(obj2).some(v2 =>
v2.split(',').every((val) => {
return v1.split(',').includes(val.toString()); // Return this
})
)
);
}
console.log(includesValues(obj1,obj2));