2013-07-06 2 views
0

je un tableau qui ressemble à ceci:Obtenir et correspondant à des valeurs de tableau

var Data=[{ 
    "Class":"item1","element":["a","b","c","d","e"], 
    "Class":"item2","element":["a","b","c","d","e"], 
    "Class":"item3","element":["a","b","c","d","e"], 
    "Class":"item4","element":["a","b","c","d","e"] 
}]; 

J'ai deux variables:

var class='item1'; 
var element='a'; 

Je veux une condition que si les valeurs de la classe var correspondent à « item1 » alors la valeur de l'élément var doit être comparée avec ses éléments seulement comme:

if (class == Data.Class) alors l'élément doit être apparié avec Data.element près de lui

Des idées?

+5

Votre variable 'Data' est erronée. Comment pouvez-vous avoir les mêmes paires clé/valeur 4 fois. Seul le dernier sera stocké. – mohkhan

+0

L'objet de votre tableau 'Data' redéfinit' '" Class "' et '" element "'. Voulez-vous dire que chaque ligne doit être un objet distinct dans le tableau? – freejosh

+0

oui freejosh et ce qui devrait être la meilleure structure pour cela mohkhan – Hushme

Répondre

2

Cela devrait être vos données ...

var Data= [ 
    { "Class":"item1","element":["a","b","c","d","e"] }, 
    { "Class":"item2","element":["a","b","c","d","e"] }, 
    { "Class":"item3","element":["a","b","c","d","e"] }, 
    { "Class":"item4","element":["a","b","c","d","e"] }, 
]; 

Ensuite, vous pouvez parcourir et trouver votre valeur . Comme ceci

var class='item1'; 
var element='a'; 
for(var i = 0; i < Data.length; ++i){ 
    if (Data[i].Class == class){ 
     for(var j = 0; j < Data[i].element.length; ++j){ 
      if (Data[i].elements[j] == element){ 
       // do whatever 
      } 
     } 
    } 
} 
+0

je vous remercie ma structure était faux que je échouais – Hushme

+0

Pouvez-vous s'il vous plaît vérifier et me dire quel est le problème avec ce son n'accepte pas les données pour le même élément http://jsfiddle.net/StaHg/ – Hushme

0

d'abord tout ce que vous devez corriger votre data

var Data= [ 
    { "Class":"item1","element":["a","b","c","d","e"] }, 
    { "Class":"item2","element":["a","b","c","d","e"] }, 
    { "Class":"item3","element":["a","b","c","d","e"] }, 
    { "Class":"item4","element":["a","b","c","d","e"] }, 
]; 

Maintenant, il est un tableau d'objets.

Ensuite, vous pouvez regarder dans ce tableau, par exemple avec une boucle for

var myclass = "item3"; // class is a reserved word 
for (var i=0; i<Data.length;i++) { 
    if (Data[i].Class == myclass) { 
     // do something with that its data Data[i].element 
    } 
} 
+0

ok classe a été apparié Qu'en est-il de son élément? – Hushme

+0

bien tout ce que vous voulez faire maintenant .. c'est à vous. Vous n'avez pas spécifié ce que vous voulez avec ça. – Zim84

Questions connexes