jQuery从索引获取关联数组键

时间:2014-01-15 21:43:57

标签: javascript jquery key associative

我的问题如下,在数组中:

    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 非常感谢。

3 个答案:

答案 0 :(得分:1)

好的,所以解决方案非常简单,你需要创建一个对象,它将indeces与键以及带有值的键相关联。这是一个有效的JSBin。请注意,要添加元素,您需要一个自定义函数(在本例中为addElement),以便能够在正确的位置关联indeces和keys。这是一份粗略的草案,可以让您了解如何做到这一点!

JSBin

如果您有任何问题或者这不是您所期望的,只需编辑您的问题,我就可以再看一眼。如果你想要你想要的行为,它必须是一个自定义对象。

答案 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中了解有关此技术的更多信息,以及对不应该依赖此原因的一些限制。