我有一个字符串,我需要在 json 对象中搜索它,并从找到的值中返回一个特定的哈希值。我让它在没有下划线的情况下工作,但优化不佳。我需要做的是在找到 fileToSearch
字符串后立即停止循环。
比如我这里有一个json对象:
var json = {
"images/mike.jpg" : "images/mike.12345.jpg",
"images/joe.jpg" : "images/joe.axcvas.jpg",
"images/mary.jpg" : "images/mary.mndfkndf.jpg",
"images/jane.jpg" : "images/jane.dfad34.jpg",
};
我有一个变量 fileToSearch
需要在上面的对象中查找。
var fileToSearch = "joe.jpg";
应该输出的是images/joe.axcvas.jpg
中的哈希值,所以axcvas
。
没有下划线:
var hash;
for (var key in json) {
var index = key.indexOf(fileToSearch);
if (index !== -1) {
hash = json[key].split('.')[1];
}
}
console.log(hash); //axcvas
如何使用 Underscore 优化/实现此目的?
最佳答案
您可以使用 _.findKey
这样:
var key = _.findKey(json, function(value, key) {
return key.indexOf(fileToSearch) >= 0;
});
var hash = key? json[key].split('.')[1] : undefined;
请注意,此方法从 v1.8.0 开始可用。
关于javascript - 使用下划线按键查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36752980/