Alternatives jQuery Grep pour retourner un article
Je suis à la recherche à un certain jQuery code que j'ai écris en ce moment et il semble tout à fait ordinaire bizarre de mon C# cerveau. Est-il une meilleure manière de faire ceci?
var idToLookFor = 2;
var myArray = [{id:1},{id:2},{id:3}]
var arrayItem = $.grep(myArray , function (elm) {
return elm.id == idToLookFor;
});
var itemFound = arrayItem[0];
Je peux comprendre grep retourner un tableau plutôt que de trouver le type de fonction de son type de filtre de fonction donc je suppose que la question devrait vraiment être est-il une fonction qui retournera seulement un élément plutôt qu'un tableau?
source d'informationauteur Jammer
Vous devez vous connecter pour publier un commentaire.
Cette réponse à une autre question souligne que grep va continuer la boucle sur le tableau même après qu'il a trouvé la bonne réponse. Pas un problème dans l'exemple ci-dessus, mais si votre tableau pourrait être beaucoup plus grande, il est intéressant de noter: non grep solution
C'est juste une boucle for qui est enveloppé dans une fonction qui renvoie à l'objet qu'il trouve. Même si vous restez avec le grep méthode que j'avais encore abstrait votre logique dans certains réutilisable de la fonction et de la garder dans un joli helper fichier quelque part.
Je poste une version modifiée de la réponse purement de sorte que vous pouvez voir ce que je veux dire avant de décider si vous voulez suivre le lien:
Bien, si vous le souhaitez à l'aide de jQuery fonction générique de style, vous pouvez ajouter quelque chose comme ceci dans votre bibliothèque personnelle:
Utilisation de votre exemple:
Bien sûr, vous pourriez au lieu d'utiliser votre propre espace de noms...
Je suppose que votre préoccupation est la lisibilité du code. Je pense qu'en utilisant directement une langue boucle solution de cette question est également assez fine.
Vous pourriez également être intéressé avec déchetscomme il n'est pas nécessaire de maintenir une autre structure de tableau juste pour cela, mais au moins pour ton exemple, il semble comme un micro-optimisation question.
Expansion sur Blazemonger commentaire:
devrait vous obtenez le point que vous cherchez, si je comprends votre question correctement. Note de -1 à compte pour l'indexation de 1
EDIT: cela suppose également que le tableau sera toujours trié par ordre croissant de code comme il est dans votre question. Si votre id-incrémente bien, mais le tableau n'est pas d'abord triées par eux voir: Trie un tableau d'objets par la chaîne de la valeur de la propriété JavaScript
Si vous avez un tableau d'Objets, ce qui ferait:
Pour un tableau simple Vous pouvez utiliser inArray .Il retourne la clé du tableau dans lequel l'élément est présent!.
Veuillez utiliser