Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在多维数组中查找值_Javascript_Jquery - Fatal编程技术网

Javascript 在多维数组中查找值

Javascript 在多维数组中查找值,javascript,jquery,Javascript,Jquery,假设我的脚本中有一个数组,它是这样组成的: var detail= {}; detail['i100']=new Array() detail['i100']['ID 4564']= 'John' detail['i100']['ID 4899']= 'Paul' detail['i100']['ID 9877']= 'Andy' detail['i100']['ID 1233']= 'Evan' detail['i25'] = new Arr

假设我的脚本中有一个数组,它是这样组成的:

   var detail= {};
   detail['i100']=new Array()

   detail['i100']['ID 4564']= 'John'  
   detail['i100']['ID 4899']= 'Paul' 
   detail['i100']['ID 9877']= 'Andy'
   detail['i100']['ID 1233']= 'Evan'

   detail['i25'] = new Array()  

   detail['i25']['ID 89866']= 'Paul s'  
   detail['i25']['ID 87866']= 'Paul'  
然后,我使用此脚本获取数组第一部分的值:

   $.each(detail, function(vehicle) {
    console.log( vehicle ) 
   });
这给了我两个预期的结果(
i100
i25
),但我想做的是,通过使用参考车辆,获得第二维度的所有名称和值——
i、 e.通过使用
i25
我想返回ID
89866
和ID
87866
。我试过
children()
,但就是不起作用。请问有人有什么建议吗

您需要在第二维度上运行另一个

$.each(detail, function(index,value){
    $.each(value, function(i,v) {
        console.log(v);
    });
});
或者,如果要专门调用一项,请传入值名称:

function getByName(name){
    $.each(detail[name], function(i,v){
        console.log(v);
    });
}

顺便说一句,你真的不应该把数组和数字键一起使用
detail['i100']=new Array()
应该是
detail['i100']={}
,也就是说,它应该是一个对象。
children()
用于jQuery集,而不是数组。使用普通的
Array
方法和访问器获取数组元素。@adeneo:数组是对象,但它们有一些特殊的方法,只能处理具有数字属性名的属性。代码完全有效,但例如
detail['i25'].length
将返回
0
@adeneo:正如我所说,数组是对象。总是。但是,arr的
typeof
返回
'object'
是该语言的一个缺点。我尝试了,但我得到了这个错误,没有捕获TypeError:无法使用'in'运算符在i100中搜索'3',请立即尝试我的编辑。。。我忘记了每个回调函数使用(索引、值)没有问题!很高兴你拿到了。表达你的感激之情的最好方式就是投票并接受我的回答:)