|
Доступ к элементу массива.
Привет
Есть массив
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, время: 20:10. |
|