如何使用JavaScript变量提取JSON字符串
How do I extract JSON string using a JavaScript variable?
我当前正试图通过使用作为变量获得的name
来检索相应的dial_code
。
该应用程序使用世界地图。当用户悬停在某个特定国家/地区时,会使用"getRegionName"获取该国家/地区。然后,这被用来改变变量name
。如何使用变量name
来检索与其相关的dial_code
?
JSON
var dialCodes = [
{"name":"China","dial_code":"+86","code":"CN"},
{"name":"Afghanistan","dial_code":"+93","code":"AF"}
];
以下代码在鼠标悬停于某个国家时运行
var countryName = map.getRegionName(code);
label.html(name + ' (' + code.toString() + ')<br>' + dialCodes[0][countryName].dial_code);
此代码无法正常工作。dialCodes[0][countryName].dial_code
是导致错误的部分,但我不确定如何正确引用相应的键/值对
如果必须支持旧浏览器:循环数组中的条目,并与给定名称进行比较:
var dialCode;
for(var i = 0; i < dialCodes.length; i++) {
if(dialCodes[i].name === countryName) {
dialCode = dialCodes[i].dial_code;
break;
}
}
label.html(countryName + ' (' + dialCode + ')');
如果您浏览support
Array.prototype.filter
:
dialCodes.filter(function(e) { return e.name === 'China' })[0].dial_code
如果你可以控制它,我建议你把对象做得更像字典,例如,如果你总是按代码(CN
或AF
)查找,如果你这样做,你可以避免循环:
var dialCodes = {
CN: { "name":"China","dial_code":"+86","code":"CN" },
AF: {"name":"Afghanistan","dial_code":"+93","code":"AF"}
};
var code = dialCodes.CN.dial_code;
或
var myCode = 'CN'; // for example
var code = dialCodes[myCode].dial_code;
由于它是一个数组,因此可以使用filter
提取所需的数据。
function getData(type, val) {
return dialCodes.filter(function (el) {
return el[type] === val;
})[0];
}
getData('code', 'CN').dial_code; // +86
相关文章:
- 如何使用JSON字符串中的jQuery填充下拉框
- Json字符串可以'当字符串末尾有“'时,t解码;
- jquery从2个json字符串构建一个复选框表单
- RegEx只匹配JSON字符串中最里面的数组
- json字符串的Javascript帖子:没有任何东西传入或返回
- 使用javascript在MVC视图中解析.net JSON字符串
- 用Angularjs+Typescript将GZip Json字符串解压为普通Json字符串
- 如何将表单数据传递给PHP并将json字符串返回给Javascript
- 如何使用AngularJS应用基于Json字符串响应的条件CSS类
- 停止JSON.parse()从JSON字符串数据中删除尾随零
- 将JSON字符串转换为函数参数
- 在AngularJS中创建JSON字符串
- 为什么我不能使用jQuery.parseJSON(json)解析json字符串
- Json字符串更改日期
- JSON字符串格式错误
- Json和$scope的角度之间的差异$eval应用于JSON字符串时
- C#JSON字符串到JavaScript数组
- 如何在JSON字符串中实现嵌套HTML
- 如何从带有多个对象的JSON字符串创建JSON对象
- 使用捕获组查找和替换json字符串中出现的所有短语