javascript查找数组项的父项
我有这样一个数组项:javascript查找数组项的父项,javascript,arrays,parent,Javascript,Arrays,Parent,我有这样一个数组项: var array = USA.NY[2]; // gives "Albany" {"USA" : { "NY" : ["New York City", "Long Island", "Albany"] }} 我想从数组中找到状态。我该怎么做?谢谢 function findParent(array) { // do something // return NY } 在Javascript中,数组元素没有对包含它们的数组的引用 要实现这一点,您必须有对“根
var array = USA.NY[2];
// gives "Albany"
{"USA" : {
"NY" : ["New York City", "Long Island", "Albany"]
}}
我想从数组中找到状态。我该怎么做?谢谢
function findParent(array) {
// do something
// return NY
}
在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;
}
}
}
}
}
函数findParent(项){
var成员,i,数组;
代表(美国会员){
if(USA.hasOwnProperty(member)&&typeof USA[member]===“object”&&USA[member]数组实例){
数组=美国[成员];
对于(i=0;i
请注意,我已将数组
参数重命名为项
,因为您正在传递一个值(和数组项),并且希望返回数组。如果你想知道数组的名称,你应该返回
member
。这里有一个通用函数,可以用来查找任何类型多维对象的父键。我习惯性地使用下划线.js,并且为了简洁起见,将抽象数组与关联数组循环相比较
(function (root, struct) {
var parent = null;
var check = function (root, struct) {
_.each(root, function (value, key) {
if (value == struct) {
parent = key;
} else if (root == struct) {
parent = '_root';
} else if (typeof value === 'object') {
check(value, struct);
}
});
}
check(root, struct);
return parent;
})
你的问题的哪一部分是输入?了解您需要输出为NY…@vishwant如果输入是数组变量,您可以提供更多关于如何使用它以及参数是什么的详细信息。