【问题标题】:How to find if an object value is included in another object value如何查找对象值是否包含在另一个对象值中
【发布时间】:2018-06-12 14:22:55
【问题描述】:

我有一个对象

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/

我在这里做错了什么?

【问题讨论】:

  • forEach改成every
  • @dandavis 完美!

标签: javascript node.js collections lodash


【解决方案1】:

您必须返回 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));

【讨论】:

    猜你喜欢
    • 2015-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-03
    • 1970-01-01
    • 1970-01-01
    • 2020-11-29
    • 2016-06-05
    相关资源
    最近更新 更多