Se le da una cadena con palabras y números separados por espacios en blanco (un espacio). Las palabras contienen sólo letras. Debe verificar si la cadena contiene tres palabras seguidas. Por ejemplo, la cadena "start 5 one two three 7 end" contiene tres palabras seguidas.
Entrada: Cadena Salida: Booleano
Esto es lo que estoy tratando de hacer, por favor, señale mi error. Gracias.
function threeWords(text){ let lst = text.split(' '); for (let i=0; i< 3; i++) { if (typeof lst[i] === 'string' && Number(lst[i]) === NaN) {return true} else {return false;}} }Si prefiere continuar con su código que usar expresiones regulares, estos son sus problemas:
Aquí está el código fijo:
function threeWords(text) { let lst = text.split(' '); let num_words = 0; for (let i = 0; i < lst.length; i++) { if (isNaN(Number(lst[i]))) num_words++ else num_words = 0 if (num_words === 3) return true } return false; }Podría ser más fácil con una expresión regular:
const result = /([A-Za-z]+( |$)){3}/.test('start 5 one two three 7 end'); console.log(result);