javascript - 怎样可以获取对象属性的索引?
黄舟
黄舟 2017-04-10 14:24:13
[JavaScript讨论组]

比如 opt 是一个对象,然后设置属性:

var opt = {
  set1:"1",
  set2:"2",
  set3:"2"
}

可以直接将opt直接取到索引 还是将里面的属性取出来为数组取。

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(2)
大家讲道理

直接读到 key 无法用原生 JS 实现,比较常规的做法是用 for..in 循环:

var opts = { set1: "1", set2: "2", set3: "3" },
    keys = [];

for (key in opts) {
    keys.push(key);
}

keys[0];    // "set1"
keys[1];    // "set2"
keys[2];    // "set3"

但是这里面有坑,因为很多时候你不知道 key 是目标对象自己的,还是通过原型继承来的,所以一般都要做一层判断,只要目标对象自己的:

for (key in opts) {
    if (opts.hasOwnProperty(key) {
        keys.push(key);
    }
}

好消息是 ES5 增加了 Object.keys 方法,直接获取对象自己的所有键,返回数组:

var keys = Object.keys(opts);

再进一步的判断比如 可枚举 之类的,你没问,我就不啰嗦了,欢迎其他人补充。

PHP中文网

没太明白题主的意思。

var opt = {
  set1:"1",
  set2:"2",
  set3:"2"
}

是希望获得 set1 的值吗? 直接 opt.set1 就可以了。或者我误会了题主的意思。
如果这个索引指的是 key 值的话,遍历对象吧。

var index = Array();
for(var i in opt) {
    if(typeof(i) != 'function') {
        index.push(i);
    }
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号