javascript找到数组项的父级

Mar*_*ark 2 javascript arrays parent

我有一个像这样的数组项:

var array = USA.NY[2];
// gives "Albany"

{"USA" : {
  "NY" : ["New York City", "Long Island", "Albany"]
}}
Run Code Online (Sandbox Code Playgroud)

我想从只有阵列中找到状态.我该怎么做呢?谢谢.

function findParent(array) {
  // do something
  // return NY
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*ijn 5

在Javascript中,数组元素没有引用包含它们的数组.

要实现这一点,您必须引用"根"数组,这将取决于您的数据模型.
假设USA是可访问的,并且只包含数组,那么您可以这样做:

function findParent(item) {
    var member, i, array;
    for (member in USA) {
        if (USA.hasOwnProperty(member) && typeof USA[member] === 'object' && USA[member] instanceof Array) {
            array = USA[member];
            for(i = 0; i < array.length; i += 1) {
                if (array[i] === item) {
                    return array;
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,我已将array参数重命名为,item因为您传递了一个值(和数组项),并且您希望返回该数组.
如果您想知道数组的名称,则应该返回member.