2014-01-15 27 views
3

我的问题关联数组关键是下面的,在数组:jQuery的获得来自指数

var array = new Array(); 
    array['abc'] = 'value1'; 
    array['def'] = 'value2'; 

我如何获得一个数组的关联关键,如果我有它的指数是多少?假设我想要arr [0]的联合关键字(=>'abc')或arr [1]'=>'def')的关联关键字。这在jQuery中如何实现?

让我们清楚,我不是在寻找价值,我不需要使用$ .each()。我只需要将0连接到'abc'和1 =>'def'等等。不幸的是,像arr [0] .assoc_key()似乎不存在T_T 感谢一堆。

+1

Javascript没有本地字典类型,您必须编写它。 –

+1

这是不可能的,jQuery根本不会出现在图片中。如果你使用一个数组作为这样的字典,你做错了什么。 – Jon

+1

重新思考你这样做的方式。也许尝试'array [0] = {key:'abc',value:'value1'}' – Geezer68

回答

1

所有权利,使该解决方案是非常简单的,你需要创建一个对象,其同伙与键以及与值的键。这是一个JSBin的作品。请注意,要添加一个元素,您需要一个自定义函数(在这种情况下为addElement),以便能够在正确的位置关联各个元和键。这是一个粗略的草案,让你了解它是如何完成的!

JSBin

如果您有任何问题或如果这不完全是你所期待的,只需编辑你的问题,我会在它有再多看一眼。如果你想要你所要求的行为,它必须是一个定制的对象。

+0

非常好!谢谢。 – Gingi

-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以及为什么你不应该依赖于一些限制的更多信息。

+0

'for ... in'不能保证订单。理论上你可以做两次迭代,并从中得到不同的结果。 – Jon

+0

如果您插入另一个键索引将更改。 – stark

0

Javascript没有本地字典类型,您必须编写它。 - T McKeown

这是不可能的,jQuery根本不会出现在图片中。如果你使用一个数组作为这样的字典,你做错了什么。 - 乔恩

重新思考你正在做的方式。也许尝试阵列[0] = {关键: 'ABC',值: 'VALUE1'} - Geezer68

@ Geezer68,对象不支持多维数据,我工作的阵列为3级深(我知道我原来的帖子中没有这么说,但我认为这不是相关的)。

无论如何,谢谢你们,它回答了这个问题!我会重新考虑它,然后;-)

编辑:我想我就增加一个级别:

var array = new Array(); 
    array[] = 'abc'; 
    array[0] = 'value1' 
+0

哦,Merci Karl-André以及^^ – Gingi