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

215
Vistas
Obtenga un valor de un objeto y use ese valor para completar otras claves en ese mismo objeto bajo una condición

Así que aquí hay un ejemplo:

 { "part": "Intro", "e": "------5/6------8\\6-|-------------------|-------------------", "B": "-----------9-------|---------6p8---(6)-|-------------------", "G": "--8----------------|---8h9-------------|--<8>--------------", "D": "", "A": "", "E": "", "endMsg": "Continue..." }

Nota: La doble barra inclinada se convertirá en una sola barra inclinada solo al renderizar el texto.

  1. Quiero obtener valor de este objeto que no está vacío. (Entonces eso podría ser de la tecla e o de la tecla B Siempre que no esté vacío).

  2. Entonces estoy reemplazando ese valor usando esta expresión aquí:

    str.replace(/[0-9-. a-zA-Z // \ ~ ( ) < >]/g, '-');

Es para reemplazar los números, letras y otros caracteres en guiones.

  1. Quiero usar ese valor con los guiones y los caracteres de tubería solo para llenar las otras claves dentro del mismo objeto que están vacías.
  2. Al final, quiero que se vea algo como esto:
 { "part": "Intro", "e": "------5/6------8\\6-|-------------------|-------------------", "B": "-----------9-------|---------6p8---(6)-|-------------------", "G": "--8----------------|---8h9-------------|--<8>--------------", "D": "-------------------|-------------------|-------------------", "A": "-------------------|-------------------|-------------------", "E": "-------------------|-------------------|-------------------", "endMsg": "Continue..." }

No tengo idea de cómo lograr esto en el código. Por favor ayuda.

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

0

Puede recorrer cada par de valores clave y reemplazar el valor si está vacío. Tenga en cuenta que se utiliza una barra invertida para escapar de un carácter. Para solucionar esto, primero reemplazamos las barras invertidas con guiones y luego reemplazamos el resto.

La expresión regular también podría simplificarse a /[^-|]/g , lo que significa reemplazar todos los símbolos excepto - y |

 const lines = { "part": "Intro", "e": "------5/6-----8\\6-|-------------------|-------------------", "B": "-----------9-------|---------6p8---(6)-|-------------------", "G": "--8----------------|---8h9-------------|--<8>--------------", "D": "", "A": "", "E": "", "endMsg": "Continue..." }; const createFullLines = (lines, blacklist = ['part', 'endMsg']) => { // Find a line that is not empty const line = Object.entries(lines).find(([key, line]) => { return !blacklist.includes(key) && line.trim(); }); // Exit if all lines are empty if(!line) return lines; // Destructure to get only value const [_, filledLine] = line; // Create new line with only dashes const newLine = filledLine.replace(/[^-|]/g, '-'); // Update lines for(const key in lines) { lines[key] ||= newLine; } return lines; } const result = createFullLines(lines); console.log(result);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Simplemente debe iterar entre las claves de su objeto de esta manera:

 // find first non-empty field, !! - conversion to boolean let nonEmptyKey = Object.keys(obj).find(key => !!obj[key]); for(let key of Object.keys(obj)) { // check if value is empty if(!obj[key]) { obj[key] = obj[nonEmptyKey].replace(/[0-9-. a-zA-Z // \ ~ ( ) < >]/g, '-'); } }

Además, puede simplificar su expresión regular a esto:

 // replace all symbols except - and | str.replace(/[^-|]/g, '-');
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