2017-05-06 64 views
-1

我正在做我的第一個真正的後端項目,我有一個位置列表如下所示: Country(array) - > state(array) - >位置(陣列) - >名稱(陣列)Javascript檢查值是否在數組內的數組內

我想要做的是取一個給定的名稱,然後向上走回樹並獲得它的父母位置/國家/國家。

例如大蘋果(名稱) - >紐約(位置) - >狀態(紐約) - >國家(美國)

有沒有人對如何做到這一點無需多次循環有什麼建議?

我想我可以結合所有的位置並循環,找到一個匹配,然後繼續做同樣的事情?

+1

請張貼你的數據數組,以便我們看看究竟需要什麼。 –

+0

這些名稱在整個數據集中是唯一的嗎? – trincot

+2

它是'locations = {{usa:[{ny:[{nyc:[{name:'bigApple'}]}]}]'?包含對象數組的對象數組...等等? – Purag

回答

0

這樣做的最快方法是存儲一個字符串與每個元素的層次結構。

var hierarchy = 'Country|State|Location|Name'; 
var parts = hierarchy.split('|'); 
// parts.length will tell you what level of the hierarchy you are dealing with 
var country = parts[0]; 
var state = parts[1]; 
var location = parts[2]; 
var name = parts[3]; 

根據您的需要和數據源,層次結構字符串可以由每個級別的ID /索引值組成。