使用数组从对象中检索值

时间:2013-06-12 07:33:35

标签: jquery

我正在研究方法代码,我必须使用动态数组迭代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/ 请建议我,如何使用Array元素获取项目的值?感谢

4 个答案:

答案 0 :(得分:2)

由于您的媒体资源名称是动态的,因此您必须使用bracket notation代替dot notation

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

答案 1 :(得分:1)

应该是......

item[ tableHeaders[0] ];

...即,使用bracket notation按名称访问属性。请注意,您在此处使用任何复杂表达式,例如:

item[ 'e' + 'mail' ]; // the same as item.email

答案 2 :(得分:1)

使用动态密钥时,需要使用[]表示法而不是.表示法

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

演示:Fiddle

答案 3 :(得分: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).