【发布时间】:2018-09-05 13:38:39
【问题描述】:
我有一个存储到变量中的 js 对象
var data = {
"France":[
{
'population': "8M",
}
],
"Spain":[
{
'population': "18M",
}
]
}
我有一个输入字段,它有一些值(从下拉列表中选择)。
<input type="text" id="country1" onkeyup="myFunction()" placeholder="Select indicator" value="France">
我试图将输入的值与对象的键进行比较,然后如果该值等于键,则显示人口数。 到目前为止,我试图这样做
$( ".compare button" ).click(function() {
var c1 = $( ".first-country input" ).val(); //take value from input
var zemlja = Object.keys(data); //take all keys from object
var n = zemlja.includes(c1); //check if value is included in object
if (n) {
$(".country1-result h1").html(data.c1[0].population); //if value is included, add population number to result
}
});
我没有定义。我发现如果我放变量 c1 而不是键名,我就不能取值。如果我输入关键法国的名称,一切正常,但如果我输入等于法国的 c1 变量,则它不起作用。 任何提示/帮助如何管理它的工作。
谢谢。
【问题讨论】:
-
如果您可以为您的代码创建一个可运行的 sn-p,那就太好了。调试速度更快
-
你不需要这个:
var zemlja = Object.keys(data);。相反,您可以尝试.html(!!data[c1] && data[c1][0].population || '')
标签: javascript arrays json javascript-objects