Sélectionner des objets dans un tableau en fonction de la correspondance Regex
Comment puis-je retourner uniquement les objets dans un tableau qui répondent à certains critères à l'aide de javascript?
Par exemple, si j'ai ['pomme','l'avocat','banane','cerise'] et voulez seulement de la sortie de fruits qui commencent par la lettre "A".
EDIT:
A pris Sean Kinsey de la fonction ci-dessous et essayé de la rendre plus flexible, en passant dans la matrice et la lettre de match:
fonction filterABC(arr,abc) {
var arr = arr;
var filtered = (function(){
var filtered = [], i = arr.length;
while (i--) {
if ('/^' + abc + '/'.test(arr[i])) {
filtered.push(arr[i]);
}
}
return filtered;
})();
return filtered.join();
}
Essayer de l'appeler avec filterABC(arr,'A') ou filterABC(arr,'A|B|C|') pour la sortie de tous les matches de A à C, mais ayant des problèmes avec cette partie.
source d'informationauteur Choy
Vous devez vous connecter pour publier un commentaire.
Si ciblage de l'ES3 (la version de javascript qui est le plus commun, et sûr à utiliser) puis utiliser
Mais si vous ciblez ES5, alors vous pouvez le faire en utilisant
Si vous le souhaitez, vous pouvez inclure le ES5 méthode de filtre dans ES3 en utilisant
Voir https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Objects/Array/filter#Compatibility pour plus d'.
Mise à JOUR
Réponse pour la mise à jour de question
Votre problème est avec la génération de votre regex à la volée. Vous ne pouvez pas établir une regex par la concaténation de chaînes. Vous devez utiliser le constructeur: RegExp() pour créer une expression régulière dans une chaîne.
Voici ma fonction pour la mise en correspondance d'un tableau:
Vous pouvez appeler cette fonction comme suit: