通过密钥访问JavaScript对象

时间:2013-08-29 08:15:47

标签: javascript

我有一个名为data的JavaScript对象。我使用以下代码对对象中的键进行排序:

var index = [];

// build the index
for (var x in data) {
    index.push(x);
}

// sort the index
index.sort(function (a, b) {
    return a == b ? 0 : (a > b ? 1 : -1);
});

然后,我想以下列方式访问特定索引键的值:

for (var i=0; i<index.length; i++) {
    var key = index[i];
    document.getElementById(key).value = data.key;
}

但是我的data.key值未定义。任何人都可以建议为什么?

2 个答案:

答案 0 :(得分:3)

更改为

document.getElementById(key).value = data[key];

如果要访问的密钥存储在变量中,则必须使用括号表示法。在您的代码中,JavaScript将搜索名为“key”的密钥,从而失败。

示例:

var key = 'test';

console.log( data.key );  // yields content of data.key
console.log( data[key] ); // yields content of data.test

答案 1 :(得分:0)

怎么样

Object.keys(data)[key] ?

在不显示数据结构的情况下,不确定它是否可行。

编辑:这种方式根据数字索引(0,1 ...,n)检索对象密钥,而不是按名称检索。