我正在研究方法代码,我必须使用动态数组迭代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元素获取项目的值?感谢
答案 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)
答案 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).