我是新來使用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