2011-04-03 55 views
0

有两个JSON var(JSON.parse'd已经)JavaScript的JSON比较

var acchttp://pastebin.com/7DyfFzTx

var sithttp://pastebin.com/vnZiVaDx

我的目标是循环每个varsit.items.main_site.name比较acc.items.site_name,看是否他们是平等的。如果它们相同,那么我需要将sit.items.main_site.site_url存储在一个变量中。我使用此代码:

for(i=0; i < acc.items.length;i++) 
{ 
    aname = acc.items[i].site_name; 
    for(i=0; i < sit.items.length;i++) 
    { 
    sname = sit.items[i].main_site.name; 
    if (aname == sname) 
    alert("same "+aname); 
    } 
} 

alert只记录“物理一样”。 “物理”是在acc.items第一目的。这意味着环只比较第一acc.items但我怎么让它比较第二和进一步的对象(例如“TeX的 - 乳胶”)

回答

2

您使用的是同一个变量为内循环和外循环。

给第二for循环不同的变量名比i

4

那么,你可以通过使用不同的控制变量对外部和内部循环开始。 :)

另外,还要注意如何通过每次考虑看起来像你想要做什么,它不是第一个对象 - 一个元素时的第二个对象的每一个元素运行。

请详阅此张贴实现更加模块化的方法:

http://jsperf.com/recursive-vs-json-object-comparison