cus*_*ice 3 javascript underscore.js
我有一个字符串,需要在 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",
};
Run Code Online (Sandbox Code Playgroud)
fileToSearch我需要在上面的对象中查找一个变量。
var fileToSearch = "joe.jpg";
Run Code Online (Sandbox Code Playgroud)
应该输出的是 中的哈希值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
Run Code Online (Sandbox Code Playgroud)
如何使用 Underscore 优化/实现这一目标?
您可以_.findKey这样使用:
var key = _.findKey(json, function(value, key) {
return key.indexOf(fileToSearch) >= 0;
});
var hash = key? json[key].split('.')[1] : undefined;
Run Code Online (Sandbox Code Playgroud)
请注意,此方法自 v1.8.0 起可用。
| 归档时间: |
|
| 查看次数: |
10650 次 |
| 最近记录: |