2012-04-16 76 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