Gia*_*ura 2 arrays node.js lodash
我有一个数组,如:
var db = [{
"words": ["word1a", "word1b", "word1c"],
"answer": "answer1"
}, {
"words": ["word2a", "words2b"],
"answer": "answer2"
}]
Run Code Online (Sandbox Code Playgroud)
我在node.js上使用lodash来检查数组中的值.我想搜索单词并返回回复.例如,如果我搜索"word1a",则响应为"answer1"
我尝试:
var e = _.find(db, function(o){
o.words === "say"
});
console.log(e);
Run Code Online (Sandbox Code Playgroud)
但我找不到结果;
显然,我得到了未定义,因为我正在比较一个确切的值.我怎样才能获得价值?
好吧,你也得到了,undefined因为你也没有返回o.words === "say"比较.
但你是对的,这种比较在这种情况下不起作用.你应该_.some在_.find回调中使用类似的东西:
var e = _.find(db, function(o) {
return _.some(o.words, function(word) {
return word === 'say';
});
});
Run Code Online (Sandbox Code Playgroud)
这应该给你回来的对象(如果没有找到,则为undefined).如果你answer特别想要,你仍然需要将它从对象中拉出来.
这是一个工作小提琴.请注意,您还应该对undefined对象/属性进行一些额外的保护.不过,我会把它留给你.
| 归档时间: |
|
| 查看次数: |
2805 次 |
| 最近记录: |