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 の値が undefined になっています。誰でも理由を提案できますか?

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 に答える