2017-05-06 72 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 /索引值组成。

相关问题