为了账号安全,请及时绑定邮箱和手机立即绑定

怎样可以获取对象属性的索引?

怎样可以获取对象属性的索引?

吃鸡游戏 2019-04-09 20:25:42
比如opt是一个对象,然后设置属性:varopt={set1:"1",set2:"2",set3:"2"}可以直接将opt直接取到索引还是将里面的属性取出来为数组取。
查看完整描述

2 回答

?
www说

TA贡献1775条经验 获得超8个赞

直接读到key无法用原生JS实现,比较常规的做法是用for..in循环:
varopts={set1:"1",set2:"2",set3:"3"},
keys=[];
for(keyinopts){
keys.push(key);
}
keys[0];//"set1"
keys[1];//"set2"
keys[2];//"set3"
但是这里面有坑,因为很多时候你不知道key是目标对象自己的,还是通过原型继承来的,所以一般都要做一层判断,只要目标对象自己的:
for(keyinopts){
if(opts.hasOwnProperty(key){
keys.push(key);
}
}
好消息是ES5增加了Object.keys方法,直接获取对象自己的所有键,返回数组:
varkeys=Object.keys(opts);
再进一步的判断比如可枚举之类的,你没问,我就不啰嗦了,欢迎其他人补充。
                            
查看完整回答
反对 回复 2019-04-09
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

没太明白题主的意思。
varopt={
set1:"1",
set2:"2",
set3:"2"
}
是希望获得set1的值吗?直接opt.set1就可以了。或者我误会了题主的意思。
如果这个索引指的是key值的话,遍历对象吧。
varindex=Array();
for(variinopt){
if(typeof(i)!='function'){
index.push(i);
}
}
                            
查看完整回答
反对 回复 2019-04-09
  • 2 回答
  • 0 关注
  • 697 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信