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
我想返回ID89866
和ID87866
。我试过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',请立即尝试我的编辑。。。我忘记了每个回调函数使用(索引、值)没有问题!很高兴你拿到了。表达你的感激之情的最好方式就是投票并接受我的回答:)