2012-04-16 78 views
-1

我有3個數組,如下所示。我無法控制陣列。比較多個JSON數組

groups_array = [ { 
    "group" : "Mobile Test Region", 
    "id" : "251" 
}, { 
    "group" : "Mobile Demo Region", 
    "id" : "252" 
} ] 
locations_array = [ { 
    "location" : "M Testing", 
    "id" : "1376" 
}, { 
    "location" : "Trade Show Machine", 
    "id" : "1403" 
}, { 
    "location" : "M Trailer", 
    "id" : "1471" 
}, { 
    "location" : "Test Los Angeles", 
    "id" : "1475" 
} ] 
pairs_array = [ { 
    "location_id" : "1376", 
    "group_id" : "251" 
}, { 
    "location_id" : "1475", 
    "group_id" : "251" 
}, { 
    "location_id" : "1403", 
    "group_id" : "252" 
}, { 
    "location_id" : "1471", 
    "group_id" : "252" 
} ] 

這是我用來循環遍歷pairs_array和檢索與組ID對應的location_id的代碼。 Ti.API.info(pairs_array [S] .location_id);根據使用e.rowData.groupid給出的groupid輸出2個位置ID。

for (var s = 0; s < pairs_array.length; s++) { 
    if (e.rowData.groupid === pairs_array[s].group_id) { 
     Ti.API.info(pairs_array[s].location_id); 
    } 
} 

我想比較字符串並使用從IF語句獲得的location_id的Iive檢索位置名稱。我應該只是將結果推送到一個數組中,並通過location_array和結果循環並進行比較?如果是這樣,我想看到一個很好的代碼片段,因爲我嘗試了幾次我沒有得到預期的輸出。

+1

有趣。你的問題是什麼? – Hamish 2012-04-16 17:52:05

+0

你的問題是什麼?你試過什麼了? (你有沒有讀過[FAQ](http://stackoverflow.com/faq#howtoask)?) – 2012-04-16 17:53:23

+0

請仔細閱讀FAQ:http://stackoverflow.com/faq。說明你「有問題」並不能幫助我們解決你的問題。 – Hamish 2012-04-16 18:02:41

回答

0
for (var s = 0; s < pairs_array.length; s++) { 
    if (e.rowData.groupid === pairs_array[s].group_id) { 
     Ti.API.info(pairs_array[s].location_id); 

     // find location name 
     for(var t = 0; t < locations_array.length; t++) 
     { 
      if(locations_array[t].id == pairs_array[s].location_id) 
      { 
       location_name = locations_array[t].location;       
      } 
     } 
    } 
} 
+0

這樣做,謝謝。我想我在爲/ if語句進行多重操作時擔心變量的繼承。我仍然是一個小菜鳥。謝謝你和我在一起。 – 2012-04-16 18:50:15

+0

嗨克里斯。理想情況是@zetlen說'如果你能控制這些數組的結構,可以考慮把它們變成帶有「id」參數的對象哈希值, – Alex 2012-04-16 18:52:03