我的问题如下,在数组中:
var array = new Array();
array['abc'] = 'value1';
array['def'] = 'value2';
如果我有索引编号,如何获取数组的关联键?假设我想要arr [0]的关联键(=>'abc')的关联键,或arr [1]'=>的关联键。 '变形点焊')。这怎么可能在jQuery中?
我们要清楚,我不是在寻找价值而且我不需要使用$ .each()。我只需要将0链接到'abc'和1 => 'def'等...不幸的是像arr [0] .assoc_key()似乎不存在T_T 非常感谢。
答案 0 :(得分:1)
好的,所以解决方案非常简单,你需要创建一个对象,它将indeces与键以及带有值的键相关联。这是一个有效的JSBin。请注意,要添加元素,您需要一个自定义函数(在本例中为addElement),以便能够在正确的位置关联indeces和keys。这是一份粗略的草案,可以让您了解如何做到这一点!
如果您有任何问题或者这不是您所期望的,只需编辑您的问题,我就可以再看一眼。如果你想要你想要的行为,它必须是一个自定义对象。
答案 1 :(得分:0)
Javascript没有本机字典类型,您必须编写它。 - T McKeown
这是不可能的,jQuery根本没有进入图片。如果你使用数组作为这样的字典,你做错了。 - 乔恩
重新思考你的方式。也许尝试array [0] = {key:'abc',value:'value1'} - Geezer68
@ Geezer68,对象不支持多维数据,我正在处理的数组是3级深度(我知道我在原帖中没有这么说,但我认为它不相关)。< / p>
无论如何,谢谢你们,它回答了这个问题!我会重新考虑一下; - )
编辑:我想我只会添加一个级别:
var array = new Array();
array[] = 'abc';
array[0] = 'value1'
答案 2 :(得分:-1)
我不知道使用for ... in
。所以在这里我是如何做到的,并希望你得到一个更好的答案(因为我也想知道!)。
var array = new Array();
array['abc'] = 'value1';
array['def'] = 'value2';
var listKeys = [];
for(x in array) listKeys.push(x);
console.log(listKeys); // ['abc', 'def']
但在数组对象上使用[string]
是向对象添加属性,而不是数组。所以最好像这样初始化它:
var array = {};
您可以在this question中了解有关此技术的更多信息,以及对不应该依赖此原因的一些限制。