Tengo una serie de cadenas que quiero filtrar.
var words = ['hello', 'sunshine', 'apple', 'orange', 'pineapple'];Quiero mantener solo las palabras que incluyen la letra 'a'.
var wordsWithA = words.filter(function (word) { return words.indexOf('a', 4); });¿Cómo logras esto usando indexOf en javascript?
indexOf devuelve -1 , si no encuentra el elemento en el contenedor. Debe usar indexOf en cada word de cadena y no en las words de matriz:
var words = ['hello', 'sunshine', 'apple', 'orange', 'pineapple']; var wordsWithA = words.filter(function (word) { return word.indexOf('a') !== -1; }); console.log(wordsWithA);probar
var words = ['hello', 'sunshine', 'apple', 'orange', 'pineapple']; var wordsWithA = words.filter(function (word) { return word.indexOf('a') > -1; });String.prototype.indexOf(searchString, position) toma dos argumentos:
0 . Y el método devuelve el índice de la primera aparición de searchString , si se encuentra, y devuelve -1 en caso contrario.
En su caso, puede omitir el argumento de position y hacerlo de la siguiente manera:
const words = ["hello", "sunshine", "apple", "orange", "pineapple"], wordsWithA = words.filter((word) => word.indexOf("a") !== -1); console.log(wordsWithA);