Ampliando la respuesta de Pim, la forma correcta de hacerlo (sin jQuery) sería esta:
Array.prototype.find = function(match) {
return this.filter(function(item){
return typeof item == 'string' && item.indexOf(match) > -1;
});
}
Pero, en realidad, a menos que estés utilizando esta funcionalidad en múltiples lugares, sólo puede utilizar el método existente filter
:
var result = x.filter(function(item){
return typeof item == 'string' && item.indexOf("na") > -1;
});
versión de la expresión regular es similar, pero creo que va a crear un poco un poco más sobrecarga:
Array.prototype.findReg = function(match) {
var reg = new RegExp(match);
return this.filter(function(item){
return typeof item == 'string' && item.match(reg);
});
}
Sin embargo, proporciona la flexibilidad para permitirle especificar una cadena RegExp válida.
x.findReg('a'); // returns all three
x.findReg("a$"); // returns only "banana" since it's looking for 'a' at the end of the string.
¿Por qué no sólo la búsqueda de 'na' o utilizar una expresión regular ... Usted también podría aumentar String y escribir el suyo. – jahroy
Usaría una expresión regular, posiblemente esto podría ayudar a http://stackoverflow.com/questions/6333246/regex-wildcard-for-array-search – Rahul
Gracias, la sugerencia de expresiones regulares ayudó. Tal vez lo mencione como una respuesta "no hay atajos, pero usar una expresión regular es fácil", con un fragmento de muestra de código – blueberryfields