es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Usando el método .replaceAll() en un array de literales de cadena en Javascript

Objetivo: Utilizar un método de array para eliminar las cadenas de texto get, right, the, first, time y reemplazarlas con la cadena de texto única “know” en el array secretMessage.

Plan: Definir una función que tome el array original, la cadena antigua y la cadena nueva, y utilizar los métodos .replaceAll() pasando cada uno de los diferentes argumentos uno por uno, reasignando el array en cada llamada.

Código hasta ahora:

let secretMessage = ['Aprendiendo', 'no', 'se', 'trata', 'de', 'lo', 'que', 'obtienes', 'fácilmente', 'la', 'primera', 'vez,', 'se', 'trata', 'de', 'lo', 'que', 'puedes', 'descubrir', '-2015,', 'Chris', 'Pine,', 'Aprende', 'JavaScript'];

function replaceWords(originalArray, oldString, updatedString) {
  let updatedArray = originalArray.replaceAll(oldString, updatedString); // No estoy seguro si necesito envolver esto en []
  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);

Resultados actuales

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

TypeError:

originalArray.replaceAll no es una función en reemplazarPalabras.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Plan Actualizado

    En lugar de utilizar el método .replaceAll(), recorre el array y utiliza el método .replace() para cada cadena que se debe reemplazar. Vuelve a asignar el array original con el array actualizado después de cada reemplazo.

    Código Actualizado

    let secretMessage = ['Aprender', 'no', 'se', 'trata', 'de', 'lo', 'que', 'obtengas', 'fácilmente', 'la', 'primera', 'vez,', 'se', 'trata', 'de', 'lo', 'que', 'puedas', 'descubrir.', '-2015,', 'Chris', 'Pine,', 'Aprende', 'JavaScript'];
    
    function reemplazarPalabras(arrayOriginal, cadenaAnterior, cadenaActualizada) {
      let arrayActualizado = [];
      for (let i = 0; i < arrayOriginal.length; i++) {
        if (arrayOriginal[i] === cadenaAnterior) {
          arrayActualizado.push(cadenaActualizada);
        } else {
          arrayActualizado.push(arrayOriginal[i]);
        }
      }
      return arrayActualizado;
    }
    
    secretMessage = reemplazarPalabras(secretMessage, 'obtengas', 'sabes');
    secretMessage = reemplazarPalabras(secretMessage, 'correcto', 'sabes');
    secretMessage = reemplazarPalabras(secretMessage, 'la', 'sabes');
    secretMessage = reemplazarPalabras(secretMessage, 'primera', 'sabes');
    secretMessage = reemplazarPalabras(secretMessage, 'vez,', 'sabes');
    
    console.log(secretMessage);
    

    Resultados Actualizados

    [ 'Aprender',
      'no',
      'se',
      'trata',
      'de',
      'lo',
      'que',
      'sabes',
      'fácilmente',
      'sabes',
      'sabes',
      'sabes,',
      'se',
      'trata',
      'de',
      'lo',
      'que',
      'puedas',
      'descubrir.',
      '-2015,',
      'Chris',
      'Pine,',
      'Aprende',
      'JavaScript' ]
    

Comments are closed.