我是新来使用Lodash,所以我很抱歉,如果问题是微不足道的。Lodash匹配字符串到对象
我有一个字符串,我必须根据集合进行验证。
var x = 'foo'
var myObject = {
one: 'bar',
two: 'foo',
three: 'wiz'
}
如何比较反对使用Lodash(或纯JS如果它更方便)的的one
,two
和three
值x
价值发现,如果有一个匹配或不?
我是新来使用Lodash,所以我很抱歉,如果问题是微不足道的。Lodash匹配字符串到对象
我有一个字符串,我必须根据集合进行验证。
var x = 'foo'
var myObject = {
one: 'bar',
two: 'foo',
three: 'wiz'
}
如何比较反对使用Lodash(或纯JS如果它更方便)的的one
,two
和three
值x
价值发现,如果有一个匹配或不?
如果你想使用Lodash
在这个例子中,你可以使用includes
方法:
_.includes(myObject, x)
检查是否值是在集合。按值
_.findKey(myObject, (row) => row === x) // returns "two"
您可以使用Object.keys得到一个对象的关键点,并检查是否存在使用一个或多个按键使用Array.prototype.some:
var x = 'foo'
var myObject = {
one: 'bar',
two: 'foo',
three: 'wiz'
}
var hasAnyKeyThatMatchesx = Object.keys(myObject).some(function(k){ return myObject[k] === x });
你也可以遍历一个对象的属性与for ... in
(docs):
var x = 'foo';
var myObject = {
one: 'bar',
two: 'foo',
three: 'wiz'
}
function containsValue(obj, value) {
for (var prop in myObject) {
if(x === myObject[prop]) {
return true;
}
}
return false;
}
console.log(containsValue(myObject, x));
这只是普通的js。
发现关键只是检查是否存在的价值:_.includes(myObject, x) // returns true
我不知道这是否会工作。 – Rajesh
@AmirPopovich我现在看到了。我会更新。谢谢! –
是的,我尝试过。 [JSFiddle](https://jsfiddle.net/RajeshDixit/hj5ah8ev/) – Rajesh