将javascript对象键与输入值进行比较

将javascript对象键与输入值进行比较,javascript,arrays,json,javascript-objects,Javascript,Arrays,Json,Javascript Objects,我有一个js对象,它存储在变量中 var data = { "France":[ { 'population': "8M", } ], "Spain":[ { 'population': "18M", } ] } 我有一个输入字段,它有一些值(从下拉列表中选择) 我没有定义。我发现,若我把变量c1代替键的名称,我就不能取值。若我输入键France的名称

我有一个js对象,它存储在变量中

var data = {
    "France":[
        {
            'population': "8M",
        }
    ],
    "Spain":[
        {
            'population': "18M",
        }
    ]
}
我有一个输入字段,它有一些值(从下拉列表中选择)

我没有定义。我发现,若我把变量c1代替键的名称,我就不能取值。若我输入键France的名称,一切正常,但若我输入等于France的c1变量,那个么它就不工作了。 任何提示/帮助如何管理此项工作


谢谢。

由于
c1
是一个变量,请使用括号表示法,这将允许您使用属性名称作为变量:

改变

$(".country1-result h1").html(data.c1[0].population);

var data={“法国”:[{‘人口’:“800万”,}],“西班牙”:[{‘人口’:“1800万”,}]}
函数myFunction(){}
$(“.compare”)。单击(函数(){
var c1=$(“.first country”).val();//从输入中获取值
var zemlja=Object.keys(数据);//从对象获取所有键
var n=zemlja.includes(c1);//检查对象中是否包含值
如果(n){
$(“.country1 result h1”).html(数据[c1][0].population);//如果包含该值,请将人口数添加到结果中
}
});


如果您可以创建一个可运行的代码片段,那就太好了。调试速度更快您不需要这个:
var zemlja=Object.keys(数据)。相反,您可以尝试
.html(!!data[c1]&&data[c1][0]。填充| |“”)
仍然不工作,我收到消息无法读取未定义的属性。您需要检查
数据[c1]
是否存在。看阿泰姆的answer@MarkoPetković,我通过添加一些HTML和更新几个选择器更新了答案……请检查。它正在工作。我检查了数据是否存在。感谢大家。@Mamun我已经更新了您的代码,并添加了
myFunction
,因为它抛出了错误。是的,这是OP代码的一部分,但是用户将面临这个问题,所以添加了它。如果不需要编辑,请还原。
$( ".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
        }  
    });
$(".country1-result h1").html(data.c1[0].population);
$(".country1-result h1").html(data[c1][0].population);
$( ".compare button" ).click(function() {
        var c1 = $( ".first-country input" ).val(); //take value from input
        var result = data[c1] ? data[c1][0].population : '';
        $(".country1-result h1").html(result);
    });