web-dev-qa-db-fra.com

jQuery créant une matrice de deux dimensions

Edit: Il semble que j'étais un peu confus sur ce que j'essayais d'accomplir. Pour ceux qui ont pris le temps d'expliquer cela, merci.

J'essaie de créer un tableau de deux dimensions dans JQuery/JavaScript. J'ai effectué une quantité décente de recherches, de tests et d'autres recherches, mais je ne peux pas trouver une solution qui a du sens pour moi. (Cela fait déjà une très longue semaine ....)

Vous trouverez ci-dessous le format souhaité de la matrice.

{"product":[{"attribute":"value","attribute":"value"}]}
8
Stephen S.

Ce n'est pas un tableau 2D, mais plutôt un objet. En outre, votre matrice de produit ne contient qu'un seul objet. Je pense que vous avez besoin de quelque chose comme ça:

var obj = {};
obj.product = [];
for(var i=0; i < someObj.length; i++) {
   obj.product.Push[{"attribute": someObj[i]}]
}

Cela produira un tableau à l'intérieur de la propriété product:

{"product":[{"attribute":"value"}, {"attribute":"value"}]}
22
Mrchief

Vous ne pouvez pas créer un tableau de deux dimensions dans JavaScript, les tableaux ne peuvent avoir qu'une seule dimension. Les matrices déchiquetées, c'est-à-dire des tableaux de tableaux, sont utilisés à la place de deux tableaux dimensionnels.

Exemple:

var a = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];

Le format souhaité que vous indiquez n'est ni un réseau à deux dimensions ni un tableau déchiré, c'est un objet contenant une propriété qui est une gamme d'objets. Cependant, l'objet dans la matrice a deux propriétés avec le même nom, alors je suppose que vous vouliez dire que deux objets dans le tableau:

var o = {
  product: [
    { attribute: "value" },
    { attribute: "value" }
  ]
};

Vous pouvez créer un objet comme celui-ci à l'aide d'un objet littéral comme ci-dessus, ou vous pouvez la créer en ajoutant des propriétés et des éléments de réseau après:

var o = {};
o.product = [];
o.product.Push({ attribute: "value" });
o.product.Push({ attribute: "value" });
15
Guffa

Essaye ça:

{"product":[ [{"attribute":"value"},{"attribute":"value"}]]} 
0
Chandu

C'est ma solution.

var optionArr = []
optionArr = {"product": [{"id":1, "name":"abc"}, {"name":"value"}]} 
var data = optionArr['product'][0]['name']
alert(data)
0
SAWAUNG