我有一个名为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值未定义。任何人都可以建议为什么?
答案 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)检索对象密钥,而不是按名称检索。