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

122
Vistas
Using The .replaceAll() on a string literal array in Javascript

Goal: Use an array method to remove the strings get, right, the, first, time and replace them with the single string know in secretMessage array.

Plan Define a function to text in the rain, the old string, and the new string and use to .replaceall() methods and pass each one of the different arguments through one at a time, reassigning the array each call.

Code Thus Far

let secretMessage = ['Learning', 'is', 'not', 'about', 'what', 'you', 'get', 'easily', 'the', 'first', 'time,', 'it', 'is', 'about', 'what', 'you', 'can', 'figure', 'out.', '-2015,', 'Chris', 'Pine,', 'Learn', 'JavaScript'];
    

function replaceWords(orginalArray,oldString,updatedString){=
  let updatedArray= orginalArray.replaceAll(oldString,updatedString);//Not Sure If I need to wrap this in []
  return updatedArray;
}
secretMessage = replaceWords(secretMessage,'get','know');
secretMessage = replaceWords(secretMessage,'right','know');
secretMessage = replaceWords(secretMessage,'the','know');
secretMessage = replaceWords(secretMessage,'first','know');
secretMessage = replaceWords(secretMessage,'time','know');

console.log(secretMessage);

Current Results

let updatedArray= orginalArray.replaceAll(oldString,updatedString);
                               ^

TypeError:

orginalArray.replaceAll is not a function at replaceWords

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

0

As stated by @Pointy's comment, replaceAll() is a string method, it's not available on an array.


So we'll need a way to apply something on each array index.


Luckily map() does exactly that:

The map() method creates a new array populated with the results of calling a provided function on every element in the calling array.

let secretMessage = ['Learning', 'is', 'not', 'about', 'what', 'you', 'get', 'easily', 'the', 'first', 'time,', 'it', 'is', 'about', 'what', 'you', 'can', 'figure', 'out.', '-2015,', 'Chris', 'Pine,', 'Learn', 'JavaScript'];
    

function replaceWords(orginalArray,oldString,updatedString){
  return orginalArray.map(item => {
    return item.replaceAll(oldString, updatedString)
  });
}
secretMessage = replaceWords(secretMessage,'get','know');
secretMessage = replaceWords(secretMessage,'right','know');
secretMessage = replaceWords(secretMessage,'the','know');
secretMessage = replaceWords(secretMessage,'first','know');
secretMessage = replaceWords(secretMessage,'time','know');

console.log(secretMessage);

about 4 years ago · Juan Pablo Isaza Denunciar

0

replaceAll is String function, not an Array function. If you want to replace a word that maybe exists as value in an array, you have to walk through that array. Your code would look like this:

let secretMessage = ['Learning', 'is', 'not', 'about', 'what', 'you', 'get', 'easily', 'the', 'first', 'time,', 'it', 'is', 'about', 'what', 'you', 'can', 'figure', 'out.', '-2015,', 'Chris', 'Pine,', 'Learn', 'JavaScript'];
    

function replaceWords(orginalArray,oldString,updatedString){
  /* because your array values are just single words 
  and you want to replace the whole word with another whole word, 
  you can use string comparison instead of replaceAll() */
  
  let updatedArray= orginalArray.map(string => (string == oldString ? updatedString : string));
  return updatedArray;
}
secretMessage = replaceWords(secretMessage,'get','know');
secretMessage = replaceWords(secretMessage,'right','know');
secretMessage = replaceWords(secretMessage,'the','know');
secretMessage = replaceWords(secretMessage,'first','know');
secretMessage = replaceWords(secretMessage,'time','know');

console.log(secretMessage);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Just for "fun", a solution using both an array method (Array.prototype.join()) and replaceAll() (String.prototype.replaceAll()) and close to your original idea, could be:

function replaceWords(arr, oldStr, newStr) {
  return arr.join(' ')          // join all the array items into a single space-separated string
    .replaceAll(oldStr, newStr) // call `replaceAll()` on the newly created string
    .split(' ');                // split the string back into an array
}

let secretMessage = ['Learning', 'is', 'not', 'about', 'what', 'you', 'get', 'easily', 'the', 'first', 'time,', 'it', 'is', 'about', 'what', 'you', 'can', 'figure', 'out.', '-2015,', 'Chris', 'Pine,', 'Learn', 'JavaScript'];

secretMessage = replaceWords(secretMessage, 'get', 'know');
secretMessage = replaceWords(secretMessage, 'right', 'know');
secretMessage = replaceWords(secretMessage, 'the', 'know');
secretMessage = replaceWords(secretMessage, 'first', 'know');
secretMessage = replaceWords(secretMessage, 'time', 'know');

console.log(secretMessage);

Having said that, I think nobody would do it in that way in real life ;)

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