js如何获取object类型里的键值

js如何获取object类型里的键值

作者: 字体:[增加 减小] 类型:转载 时间:2014-02-18 我要评论

这篇文章主要介绍了js获取object类型里键值的方法,需要的朋友可以参考下
id="iframeu2261530_0" src="http://pos.baidu.com/acom?sz=680x200&rdid=2261530&dc=2&di=u2261530&dri=0&dis=0&dai=2&ps=403x41&coa=at%3D3%26rsi0%3D680%26rsi1%3D200%26pat%3D6%26tn%3DbaiduCustNativeAD%26rss1%3D%2523FFFFFF%26conBW%3D1%26adp%3D1%26ptt%3D0%26titFF%3D%2525E5%2525BE%2525AE%2525E8%2525BD%2525AF%2525E9%25259B%252585%2525E9%2525BB%252591%26titFS%3D14%26rss2%3D%2523000000%26titSU%3D0%26ptbg%3D90%26piw%3D0%26pih%3D0%26ptp%3D0&dcb=BAIDU_UNION_define&dtm=BAIDU_DUP_SETJSONADSLOT&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1456449154025&ti=js%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96object%E7%B1%BB%E5%9E%8B%E9%87%8C%E7%9A%84%E9%94%AE%E5%80%BC_javascript%E6%8A%80%E5%B7%A7_%E8%84%9A%E6%9C%AC%E4%B9%8B%E5%AE%B6&ari=1&dbv=2&drs=1&pcs=1072x545&pss=1072x409&cfv=0&cpl=4&chi=1&cce=true&cec=GBK&tlm=1454002478&ltu=http%3A%2F%2Fwww.jb51.net%2Farticle%2F46953.htm&ltr=http%3A%2F%2Fwangjingyi.iteye.com%2Fblog%2F2038264&ecd=1&psr=1366x768&par=1366x728&pis=-1x-1&ccd=24&cja=false&cmi=6&col=zh-CN&cdo=-1&tcn=1456449154&qn=db457840d3ba5aef&tt=1456449153937.174.319.321" width="680" height="200" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="display: block; border-width: 0px; border-style: initial; vertical-align: bottom; margin: 0px;">
最近遇到一个问题: 
复制代码代码如下:

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

其实我是想动态给key赋值,然后得到key为多少所对就的值。但这种做法行不通,obj.key会去找obj下key为"key"所对应的值,结果当然是找不到喽。 
于是,我想到了js中遍历对象属性的方法: 
复制代码代码如下:

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:区县 


这样,就可以清楚的知道js中一个对象的key和value分别是什么了。 
回到刚才的问题,怎么动态给key赋值,然后以obj.key的方式得到对应的value呢? 
其实以上printObject中有提示,那就是用obj[key]的方法,key可以是动态的,这样就解决了我上面提出的问题了。 
最后说一下,还有一个方法也可以,那就是:eval("obj."+key)。 

总结: 

js中想根据动态key得到某对象中相对应的value的方法有二: 
一、var key = "name1";var value = obj[key]; 
二、var key = "name1";var value = eval("obj."+key);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JavaScript 中的 Object 类型可以通过调用内置的 Object.values() 或者 Object.entries() 函数将其转换为集合类型Object.values() 函数会返回一个数组,数组中包含对象中所有可枚举属性的值。 Object.entries() 函数会返回一个数组,数组中包含对象中所有可枚举属性的键值对。 例如: ``` const object = { a: 1, b: 2, c: 3 }; console.log(Object.values(object)); // [1, 2, 3] console.log(Object.entries(object)); // [['a', 1], ['b', 2], ['c', 3]] ``` 请注意,Object.values() 和 Object.entries() 函数是在 ECMAScript 2017 中引入的,所以可能不在所有浏览器中都可用。 ### 回答2: 在JavaScript中,Object是一种非常常用的数据类型,它是一种无序的键值对集合。然而,有时我们需要将一个Object类型转换为集合类型,以便于进行循环遍历或者进行其他操作。 要将Object类型转为集合类型,JavaScript提供了一些内置的方法。一个常见的方法是使用Object.keys()方法,它返回一个包含Object的所有键的数组。例如,假设我们有以下的Object: var obj = {name: 'John', age: 30, city: 'New York'}; 我们可以使用Object.keys()方法来将Object类型转为集合类型: var keys = Object.keys(obj); 现在,keys是一个包含obj的所有键的数组。在这个例子中,keys数组的内容为:['name', 'age', 'city']。 另一个常用的方法是使用Object.entries()方法,它返回一个包含Object的所有键值对的数组。例如,使用上面的obj对象,我们可以使用Object.entries()方法来将Object类型转为集合类型: var entries = Object.entries(obj); 现在,entries是一个包含obj的所有键值对的数组。在这个例子中,entries数组的内容为:[['name','John'], ['age', 30], ['city', 'New York']]。 这些方法可以使我们在处理Object类型数据时更加方便,可以通过循环遍历数组来访问Object的键或者键值对。例如,我们可以使用for循环来遍历keys数组,或者使用forEach()方法来遍历entries数组。 总结起来,以上就是将Object类型转为集合类型的方法。根据需求选择适当的方法,以便于操作Object的键或者键值对。 ### 回答3: 在JavaScript中,可以通过多种方式将Object类型转换为集合类型。 一种常见的方法是使用Object的内置方法Object.values()。这个方法返回一个给定对象所有可枚举属性值的数组。例如,假设有一个名为obj的对象,它有两个属性'name'和'age',可以使用Object.values(obj)将obj对象转换为数组。这样得到的数组就可以视为一个集合,可以使用数组的方法进行操作。 另一个方法是使用Object.keys()方法获取对象的所有可枚举属性名,并将其存储在一个数组中。然后可以使用Array.map()方法遍历这个数组,将每个属性名对应的属性值提取出来,从而得到一个包含所有属性值的数组。 除了使用内置方法外,还可以自己定义一个转换函数来将Object转换为集合类型。这个函数可以遍历对象的属性,将每个属性的键值对作为一个元素添加到集合中。 无论使用哪种方法,转换后的集合类型都可以通过迭代器进行遍历,或者通过数组的一些方法进行操作,比如过滤、映射、排序等。 总之,在JavaScript中,将Object类型转换为集合类型可以使用Object.values()、Object.keys()方法或自定义转换函数来实现。这样可以方便地对对象的属性进行操作和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值