2014-06-15 2 views
1

Le problème que j'essaie de résoudre est assez simple mais comme il y a beaucoup de fonctions magiques (cachées) dans javacript, je me demande s'il existe une solution rapide pour cette. Jusqu'à présent, je n'ai vu que des gens essayer de savoir si un tableau contient une chaîne de caractères (booléen) mais ce n'est pas ce que j'essaie d'obtenir.Trouver toutes les chaînes contenant la sous-chaîne dans un tableau de chaînes

J'ai un simple tableau de chaîne:

var myarray = [ "mot1", "mot2", "potatoe"]

Si je suis à la recherche de la sous-chaîne "mot", je voudrais pour écrire une fonction qui retourne un nouveau tableau qui contient seulement les éléments correspondants du tableau original. Dans ce cas, ce serait: ["word1", "word2"].

Quelle est la meilleure approche, dois-je boucler et créer le nouveau tableau à la main?

Merci

Répondre

1

Non, vous n'avez pas besoin d'une boucle. Regardez dans Array.prototype.filter(), qui prend une fonction de rappel comme un argument:

arr.filter(callback[, thisArg])

Cette fonction teste les éléments de votre tableau un par un, en invoquant la fonction de rappel sur chaque élément. Le nouveau tableau sera composé des éléments pour lesquels votre fonction de rappel renvoie true.

Source: Mozilla Developer Network

+0

Incroyable, merci. Je vais essayer ça maintenant. Ces fonctions utilisant les callbacks sont typiques d'un mode de pensée javascript que je n'ai pas encore. – reddy

Questions connexes