通过索引获取值和引用对象属性

时间:2012-09-20 02:18:37

标签: javascript arrays

对象:

obj = {
    "expired":93,
    "old3":93,
    "old2":87,
    "old1":100,
    "fresh":150
}

如何在对象中找到“old1”(so,3)的索引?

如果我想设置其值,我将如何通过索引引用“old1”?

2 个答案:

答案 0 :(得分:2)

您不应该这样做,不保证对象属性的顺序。

如果要使用数字索引,请改用数组。

如果您使用所有字符串键(不是数字格式),那么大多数浏览器都会尊重对象表达式的顺序,但这不能保证。

如果您将数字或数字格式字符串包含为键,则顺序将不是对象表达式的顺序。参见:

var obj = {
    "expired":93,
    "old3":93,
    "old2":87,
    "old1":100,
    "1": 111,
    "fresh":150
};

for (var key in obj) {
    console.log(key + ' : ' + obj[key]);
}

输出:

1 : 111
expired : 93
old3 : 93
old2 : 87
old1 : 100
fresh : 150 

答案 1 :(得分:0)

对于谁还在寻找它...我得到了这个解决方案:

<div id="id"></div>
<div id="name"></div>
<div id="age"></div>

var data = {'rows':[
{'id':'1','name':'Andrey','age':'18'},
{'id':'2','name':'Cristine','age':'21'},
{'id':'3','name':'Loren','age':'25'}
]};

$('#id').html(data.rows[0][Object.keys(data.rows[0])[0]]);
$('#name').html(data.rows[0][Object.keys(data.rows[0])[1]]);
$('#age').html(data.rows[0][Object.keys(data.rows[0])[2]]);

jsfiddle