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

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

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

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 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