|
Доступ к элементу массива.
Привет
Есть массив prices =[ {name: 'Bed', price: 900}, {name: 'Table', price: 400} ] Как мне достучаться до переменной, например получить price Стола (Table)? Я конечно могу обратиться prices[1].price Но это не читаемо. В идеале хотелось бы обратиться prices.table.price Что-то вроде ассоциативного массива. Наверное как-то по другому надо. Поделитесь лучшей практикой. |
var prices = [ {name: 'Bed', price: 900}, {name: 'Table', price: 400} ], _prices = {}; prices.forEach(function(el) { _prices[el.name] = el; }); prices = _prices; alert( prices.Table.price ); var prices = { bed: 900, table: 200 }; alert(prices.table); |
jtjt1010,
:-? var prices = [{ name: 'Bed', price: 900 }, { name: 'Table', price: 400 }] for (var i = 0; i < prices.length; i++) { if (prices[i].name == 'Table') alert(prices[i].price) } for (var i = 0; i < prices.length; i++) { prices[prices[i].name] = {}; prices[prices[i].name]['price'] = prices[i].price } alert(prices.Table.price) |
Все понял. Надо писать функцию :)) Думал есть что-то встроенное в JS. Спасибо!
|
Цитата:
Так как данные будут подгружаться из базы данных. Я не могу точно знать что у меня будет, кровать или стулья )) |
Цитата:
|
Array.prototype.getObjectByName = function(name) { var i, len = this.length, self; for(i = 0; i < len; i++) { self = this[i]; if(typeof self == 'object' && self.name == name) return self; } }; var prices = [{name: 'table', price: 200}]; alert( prices.getObjectByName('table').price ); :p |
Цитата:
|
Цитата:
|
danik.js, понятное дело, что искать объект по свойству как-то тупо и не логично. :)
|
Часовой пояс GMT +3, время: 11:36. |
|