Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

120
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda