0

试图创建以下关联数组:Jquery的创建具有动态密钥和多个值

阵列( '12345'=> 'A01', 'A02', 'A03'
'22222'=> 'B01',
'33333'=> 'C01', 'C02')

所以基本上是从不同另一个阵列动态生成的每个密钥。假设某些事件被触发后,变量数字为“12345”。

我们有所谓的位置的阵列,这一个将具有例如(“A01”,“A02”,“A03”)

所以然后母版阵列,将两个号码与位置地图上。这是我每次有事件时需要保存的数组。

关于下一个事件执行,我们将在数字变量(例如'22222')上获得一个新值,然后新数组位置将用('B01')覆盖另一个值,等等。

记住钥匙将永远是动态的,值可以从1到50例如我们不知道。我知道这更像是Jquery上的Object Literals。 thx提前。

下面是一段代码,需要能够拿到钥匙和值

   $.each(dragarray, function(index, value) { 

        dragid_loc['value'] = []; 
        // do loop to add each element of other array 
        $.each(draglocation, function(index2, value2) { 
         dragid_loc.value.push(value2); 
        }); 

      }); 

      console.log(dragid_loc); 

此行似乎导致我不会推另一个数组draglocation的值到每个问题。需要获得关键和价值。

dragid_loc.value.push(value2); 
+0

在JavaScript中没有关联数组,所以祝你好运。反而研究对象! – adeneo

+0

问题是什么?你有什么问题?您可能会发现阅读[MDN - 使用对象](https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Working_with_Objects)很有帮助。 –

+0

您应该使用json而不是关联数组。每次事件被触发时,您都会将键和值添加到JSON中。目前还不清楚如何获取这些数据。 – Diego

回答

6

总部设在我想你需要什么的评论是:

  • obj["newProp"] = []; // A new property is added to the object with key newProp and an empty array as value
  • obj.newProp.push(newElement); // A new element is added to the array in newProp of object
+0

我将编辑我的答案,并给出具有此问题的代码片段。也许这样就会更容易,我还需要知道的是如何访问每个的关键和值。 –

+0

在console.log(dragid_loc)上打印元素使我成为关键的“值”。我不想那样。我需要将实际的数字元素'12345'作为关键字。 –

+0

@Hard:'dragid_loc [value2] = ....'。包含代码总是让我们更容易为您提供更好的答案。目前还不清楚你想放入数组的值是从哪里来的。 –

1

无功的OBJ = {}

VAR VAL1 = '12345' ;

Obj [val1] = {0:'A01',1:'A02',2:'A03'};

var val2 ='22222';

Obj [val2] = {0:'B01'};

alert(JSON.stringify(Obj));