Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

218
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!