Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

150
Vistas
semi-space copy allocation failed, javascript heap out of memory

I was wondering why the below code returns a memory allocation error?

var countValidWords = function(sentence) {
    let words = [];
    for(let i = 0; i < sentence.length; ++i){
        let word = '';
        while(sentence[i] !== ' '){
            word += sentence[i];
            ++i;
        }
        if(word !== '')
            words.push(word);
    }
    console.log(words);
};

I'm simply trying to build an array of words from the inputted sentence (words can be separated by more than one space).

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

If the sentence doesn't end with a space, the while loop never ends, because it doesn't check if it has gone past the end of the string. As a result, you go into an infinite loop appending undefined to word, until you run out of memory.

Add a check that i is within the string length there.

var countValidWords = function(sentence) {
    let words = [];
    for(let i = 0; i < sentence.length; ++i){
        let word = '';
        while(i < sentence.length && sentence[i] !== ' '){
            word += sentence[i];
            ++i;
        }
        if(word !== '')
            words.push(word);
    }
    console.log(words);
};

about 4 years ago · Juan Pablo Isaza Denunciar

0

The while clause needs to check for i getting out of bounds:

while(i < sentence.length && sentence[i] !== ' ')
about 4 years ago · Juan Pablo Isaza Denunciar

0

How about this? It's not the most optimized version you might find but it works. You had an infinite loop on the while.

var countValidWords = function(sentence) {
    let words = [];
    let word = ''
    for(let i = 0; i < sentence.length; ++i){
        if(sentence[i] != '' && sentence[i] != ' '){
          word += sentence[i];
        }
        if(sentence[i] == ' ' || sentence[i + 1] === undefined){
          words.push(word);
          word = '';
        }
    }
    console.log(words);
};
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda