这可能是一个简单的问题,但我无法从lodash API文档和Google中找到答案.
我们假设我有一个像这样的对象:
var obj = { code: 2,persistence: true }
我想要一个函数,我可以传递一个键/值对,如果键存在于我的对象中并且具有指定的值,则返回true:
_.XXXX(obj,{code: 2}); //true _.XXXX(obj,{code: 3}); //false _.XXXX(obj,{code: 2,persistence: false}); //false _.XXXX(obj,persistence: true}); //true
这有点像where()但只有一个对象.
解决方法
您可以使用
matcher:
var result1 = _.matcher({ code: 2 })( obj ); // returns true var result2 = _.matcher({ code: 3 })( obj ); // returns false
用mixin:
_.mixin( { keyvaluematch: function(obj,test){ return _.matcher(test)(obj); }}); var result1 = _.keyvaluematch(obj,{ code: 2 }); // returns true var result2 = _.keyvaluematch(obj,{ code: 3 }); // returns false
编辑