2015-08-30 3 views
0

У меня есть массив объектов следующим образом:Как вернуть массив из свойств массива объектов

var lanes = [ 
{ 
"name" : "Breakfast Special", 
"className" : "breakfast-special", 
"sales" : 200, 
"redemptions" : 137 
}, 
{ 
"name" : "Free Danish", 
"className" : "free-danish", 
"sales" : 300, 
"redemptions" : 237 
}, 
{ 
"name" : "Half Price Coffee", 
"className" : "half-price-coffee", 
"sales" : 240, 
"redemptions" : 37 
}]; 

Я хочу, чтобы создать массив, который содержит только числовые значения, сохраненные для «погашений». Я могу получить доступ к значениям:

lanes[0].redemptions; 

Просматривая каждый объект, используя цикл, но я ищу эффективный способ сделать это.

Я попытался это с помощью функции карты следующим образом:

var arrayRedemptions = lanes.map(function() {return this.redemptions}); 

Но это не работает. Любая помощь будет оценена по достоинству.

+0

Это объект литералы, а не «Объекты JSON». Это довольно распространенное заблуждение (http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/). –

ответ

2

Вы совсем близко.

использование

var arrayRedemptions = lanes.map(function(obj) { 
    return obj.redemptions 
}); 
+0

Это не работает, он разбивает мой код. – akifquddus

+0

@ user3130733, Как его нарушающий код см. Http://jsfiddle.net/jLarLc63/ – Satpal

+0

Понял, ошибка была, у меня были некоторые пустые объекты в массиве. Фиксированный это следующим образом: вар arrayRedemptions = lanes.map (функция (OBJ) { \t \t, если (OBJ) { \t \t \t возврата obj.redemptions; \t \t} еще { \t \t \t возврата -1; \t \t} \t}); – akifquddus

2

да. внутри карты, вы можете использовать этот Params (каждый элемента, индекс, массив)

var arrayRedemptions = lanes.map(function (item, index, array) { 
    return item ? item.redemptions : -1; 
}); 
0

Сразу после добавления дополнительной проверки, особенно при работе с автогенерируемой Содержание:

var arrayRedemptions = array.map(function(obj) { 
    if (obj) 
     return obj.redemptions; 
    else 
     return -1; 
}); 
Смежные вопросы