如何查找对象值是否包含在另一个对象值中

时间:2018-01-02 22:01:07

标签: javascript node.js collections lodash

我有一个对象

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/

我在这里做错了什么?

1 个答案:

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