2016-06-11 3 views
0

Извините за широкое название вопроса.Объекты и циклы Javascript

Я создаю приложение в Titanium, и в настоящее время я интегрирую карты Google с аннотациями. Я захватываю данные из моего API, но я ударил кирпичную стену, пытаясь сделать это легко для себя.

Для предисловия, модуль карты я использую позволяет мне сделать следующее:

mapView.addAnnotations([anno1,anno2,anno3]); 

и

mapView.removeAnnotations([anno1,anno2,anno3]); 

Я хотел бы создать функцию, которая позволяет мне добавить annotiations и удалите их при запрошенном пользователем обновлении аннотаций карты.

Я в настоящее время в точке, где у меня есть это:

var annotations = {}; 

for(c = 0; c <= countedOffers; c++) { 
    var offerName = offers[c]['offer_name']; 
    var offerCat = offers[c]['offer_cat_id']; 
    var offerlong = offers[c]['offer_long']; 
    var offerlat = offers[c]['offer_lat'] 

    var anno = 'offer'+c; 

    if(anno in annotations == false) { 
     annotations['anno'+c] = {'name':offerName, 'offercat': offerCat, 'offerlng':offerlong, 'offerlat':offerlat}; 
    } 
    if(countedOffers - c == 1) { 
     loopThrough(annotations); 
    } 
} 

Я могу добавить выше annotiations делать что-то вроде этого:

var annotation = maps.createAnnotation({ 
lat:, 
lng:, 
etc... 
}); 
mapView.addAnnotation(annotation); 

function loopThrough(obj){ 
    for(var key in obj){ 
     if(!obj.hasOwnProperty(key)) continue; 
     if(typeof obj[key] !== 'object'){ 
      Ti.API.error(obj[key]); 
     } else { 
      loopThrough(obj[key]); 
     } 
    } 
} 

Ti.API.error дает мне что-то вроде этого:

joshes big burger house 
1 
-1.2577 
51.7520 
joshes big burger house 
3 
-1.2577 
51.7520 
jj offer 
1 
-1.2577 
51.7520 
No Photo 
1 
-1.2577 
51.7520 
joshes web offer 
2 
-1.2577 
51.7520 
Joshes Web Offer 
3 
-1.2577 
51.7520 

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

mapView.addAnnotations([anno1,anno2,anno3]); 
mapView.removeAnnotations([anno1,anno2,anno3]); 

Я думал, что я мог бы взрывать (или нечто подобное) и получить ключи объекта и поместить их в вышеприведенном добавить/удалить аннотации

Извините, если что-то неясно, я буду обновлять свой вопрос, если необходимо.

+0

Возможно, это поможет: https://lodash.com/docs#toArray –

ответ

0

Lol, я подошел к этой ситуации глупым способом - это было более легкое решение просто нажать легкий элемент в моем объекте в массив.

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