2013-06-12 2 views
1

Я работаю над кодом метода, в котором я должен выполнять итерацию через объект json с динамическим массивом. мой код выглядит так:Извлечение значений из объекта с массивом

var tableHeaders = ["id", "name", "status"];  
var item = { 
    id: 1, 
    name: "test name", 
    status: true, 
    email: "[email protected]" 
}  
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/ Пожалуйста, предложите мне, как я могу получить значение элемента с элементом массива? Благодаря

ответ

2

Поскольку ваше имя свойства является динамическим, вы должны использовать bracket notation вместо dot notation:

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

Большое спасибо. Оно работает!!!! – KSL

1

Это должно быть ...

item[ tableHeaders[0] ]; 

... то есть, используя bracket notation для доступ к собственности по его названию. Обратите внимание, что вы используете какой-либо сложное выражение здесь, например:

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

Да, хорошо. Получил его с использованием скобок вместо точки. Благодарю. – KSL

1

нужно использовать [] обозначения вместо . обозначения при использовании динамических ключей

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

Демо: Fiddle

+0

Получил это с использованием скобок вместо точки. Благодарю. – KSL

0

Tabheaders не является значение элемента. Попробуйте

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

Thanks @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). 
+2

Я считаю, что он хочет вернуть '1' (значение свойства' id') – xec

Смежные вопросы