1

動的配列を使用してjsonオブジェクトを反復処理する必要があるメソッドコードに取り組んでいます。私のコードは次のようなものです:

var tableHeaders = ["id", "name", "status"];    
var item = {
    id: 1,
    name: "test name",
    status: true,
    email: "test@gmail.com"
}    
console.log(item.id);    // works well --> 1    
console.log(tableHeaders[0]); // works well --> id    
console.log(item.tableHeaders[0]);  // not works

jsfiddle は次のとおりです: http://jsfiddle.net/kslagdive/rjFHV/ 提案してください、配列要素を使用してアイテムの値を取得するにはどうすればよいですか? ありがとう

4

4 に答える 4

2

プロパティ名は動的であるため、ドット表記ではなくブラケット表記を使用する必要があります。

console.log(item[tableHeaders[0]]);  // Works.
于 2013-06-12T07:35:38.770 に答える
1

そのはず...

item[ tableHeaders[0] ];

... つまり、ブラケット表記を使用して、その名前でプロパティにアクセスします。ここでは、次のような複雑な式を使用することに注意してください。

item[ 'e' + 'mail' ]; // the same as item.email
于 2013-06-12T07:35:40.830 に答える
1

動的キーを使用する場合[]は、記法ではなく記法を使用する必要があります.

console.log(item[tableHeaders[0]]);

デモ:フィドル

于 2013-06-12T07:35:48.710 に答える
0

Tabheaders は item の値ではありません。試す

var tableHeaders = ["id", "name", "status"];    
var item = {
    id: 1,
    name: "test name",
    status: true,
    email: "test@gmail.com",
    tableHeaders: tableHeaders // define "tableHeaders" as value of "item"
}   

@xec コメントありがとうございます。

答えはすでにここにありますが、とにかく:

var key = tableHeaders[0];  // the key for the value you want to extract from items.
var value = item[key];      // get the value from item based on the key defined 
                            // in table headers using the [Bracket notation][1] 
                            // (@Frédéric Hamidi).
于 2013-06-12T07:36:12.197 に答える