2013-06-12 1 views
0

Il existe un tableau d'objets dans javascript. J'ai besoin de chercher une valeur d'attribut pour cet objet dans ce tableau. Tous les objets avec les attributs correspondants je dois les mettre dans un autre tableau. Je suis débutant en jquery, toute aide serait vraiment appréciée. Merci.Rechercher des valeurs dans un tableau et placer les résultats dans un autre tableau jquery

var numPerRow = 6; 
     for (var i=0; i<subjects.length; i+=numPerRow) { 
      // TODO: Implement a row view 
var printTitle = subjects[i].getTitle(); 
if (printTitle.indexOf(searchValue) > -1) 
{ 
      var row = $('<div class="browse-printables-row"></div>'); 
      for (var j=0; j<numPerRow; j++) { 
       var idx = i+j; 
       if (idx >= subjects.length) { 
        break; 
       } 
       // TODO: Implement a printables tile view 
       row.append($(
        '<div class="printable-tile">' + 
         '<img src=' + printTitle[idx].getIconURL() + ' class="subject-tile-icon"></img>' + 
         '<div class="subject-tile-title">' + printTitle[idx].getTitle() + '</div>' + 
        '</div>' 
       )); 
      } 
} 
      grid.append(row); 
+0

S'il vous plaît poster du code et qu'avez-vous essayé jusqu'à présent? –

+2

À tout le moins s'il vous plaît poster votre entrée (le tableau), et votre sortie attendue. –

+1

@DavidThomas, non! Vous faites mon travail, et devinez ce dont j'ai besoin! – gdoron

Répondre

1

Lire sur la méthode de tableau filter

Exemple filtrera tableau et renvoyer les objets que si l'attribut b égal à 2:

var filtered = [{a: 1, b: 2}, {a: 5, b:2}, {a:2, b:1}].filter(function(el, index, array) { 
    if(typeof el.b === 'undefined') return false; 
    return (el.b === 2); 
}); 
+0

Pourquoi ne pas simplifier: 'return typeof el.b === 'undefined'? faux: el.b; '? –

+0

J'ai écrit un exemple pour obtenir des objets spécifiques (où l'attribut b est égal à deux), vous devez corriger votre version à 'el.b === 2'. Je suis tout à fait d'accord pour dire que cela peut être écrit plus court, mais je ne suis pas d'accord avec le fait que la courte déclaration 'if' est plus simple à lire. BTW si vous voulez vérifier s'il y a un attribut dans un tableau d'objets votre exemple ne fonctionnera pas correctement car el.b peut être égal à zéro et la fonction de callback du filtre retournera 0 qui est égal à false. –

1

réponse squelette pour la question squelette

//declare array 
if(jQuery.inArray(yourObj, arrayOfObjs) === -1) 
{ 
not found 
} 
else 
{ 
found //push in to array 
} 
+1

Je lol'd un peu ... mais c'est une bonne réponse à une mauvaise question – Joum

Questions connexes