JavaScript动态获取对象键值的方法

作者:异步漫步时间:2026-10-27 22:41:22浏览:417

本文介绍在JavaScript中动态获取对象属性值的两种常用方法。通过示例说明直接使用obj.key无法获取动态key对应的值,推荐使用obj[key]方括号语法或eval函数拼接字符串的方式来解决该问题,并对比了两种实现的差异。

动态获取对象键值的方法

最近在处理一个实际需求时,


具体实现代码如下:

 
var obj = {"name1":"张三","name2":"李四"};
var key = "name1";
var value = obj.key;//得到了"undefined"
value = obj.name1;//得到了"张三"

原本期望通过动态赋值给key变量,进而获取该key对应的值。然而上述写法中,obj.key会尝试查找对象中名为"key"的属性,由于该属性不存在,因此返回undefined。


为此,考虑使用JavaScript遍历对象属性的方式:


代码如下:

 
function printObject(obj){
//obj = {"cid":"C0","ctext":"区县"};
var temp = "";
for(var i in obj){//用javascript的for/in循环遍历对象的属性
temp += i+":"+obj[i]+"\n";
} 
alert(temp);//结果:cid:C0 \n ctext:区县
} 

通过这种方式,可以清晰查看对象中每个key和value的具体内容。


回到最初的问题,如何动态给key赋值,并通过类似obj.key的形式获取对应的value?


从上述printObject函数的实现中可以得到提示,即使用obj[key]的形式。key变量可以是动态的,从而解决了前述问题。


此外,还有一种替代方案,即使用eval("obj."+key)。



总结:



在JavaScript中,根据动态key获取对象对应value主要有两种方法:


一、var key = "name1";var value = obj[key];


二、var key = "name1";var value = eval("obj."+key);

作者最新文章