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

作者:异步漫步

时间:2026-10-27

浏览:416

本文介绍在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);

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章