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

107
Views
¿Cómo convierto una cadena en un diccionario en javascript?

tengo una cuerda

 var str = "1:6,5,2,2:3";

Quiero convertir este str en un diccionario js tal que:

 var dict = {1:"6,5,2", 2:"3"};

para que pueda obtener los valores por su respectivo índice clave. ¿Cómo lo convierto?

Probé este código para almacenar los valores divididos en una matriz:

 var pages = "1:6,5,2,2:3"; var numbers = []; if (pages.includes(',')) { page_nos = pages.split(','); for (var i = 0; i < page_nos.length; i++) { if (page_nos[i].includes(':')) { var n = page_nos[i].split(':'); numbers.push(n[1]); } else { numbers.push(page_nos[i]); } } } else { page_nos = pages.split(':'); numbers.push(page_nos[1]) }; console.log('numbers: ', numbers);

Pero es incorrecto, ya que sin dictionary es imposible saber qué valor pertenece a qué índice

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Si no puede hacer que su cadena de entrada sea un JSON adecuado u otro formato fácilmente analizable en primer lugar, esto responde a su pregunta:

 const str = "1:6,5,2,2:3"; const obj = str.split(/,(?=\d+:)/).reduce((accu, part) => { const [k, v] = part.split(':', 2); accu[k] = v; return accu; }, {}); console.log(obj);

Corte la cadena en todas las comas seguidas de dígitos y dos puntos. Cada parte tiene una clave delante de dos puntos y un valor después, que debe incluirse en un objeto en este formato.

about 4 years ago · Juan Pablo Isaza Report

0

Sin solución de mutaciones.

 const str = "1:6,5,2,2:3"; const dict = str .split(/(\d+:.*)(?=\d+:)/g) .reduce((t, c) => { const [key, value] = c.replace(/,$/, "").split(/:/); return { ...t, [key]: value } }); console.log(dict);

about 4 years ago · Juan Pablo Isaza Report

0

si considera no usar expresiones regulares, también puede probar esto. para sacar un dictado (Objeto) de esa cadena, esto servirá.

 var pages = "1:6,5,2,2:3"; function stringToObject(str) { var page_object = {}; var last_object; str.split(",").forEach((item) => { if (item.includes(":")) { page_object[item.split(":")[0]] = item.split(":")[1]; last_object = item.split(":")[0]; } else { page_object[last_object] += `,${item}`; } }); return page_object; } console.log(stringToObject(pages))

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!