0

我有一个名为 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 值没有定义。谁能建议为什么?

4

2 回答 2

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
于 2013-08-29T08:17:44.087 回答
0

怎么样

Object.keys(data)[key] ?

在不显示数据结构的情况下不确定它是否会起作用。

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

于 2013-08-29T08:17:13.900 回答