2011-04-03 89 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