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

206
Views
Cómo convertir un objeto en una matriz en Javascript

Tengo el siguiente objeto obj (viene como una respuesta JSON):

 var obj = { 0: { note: 'test1', id: 24759045, createTimeStamp: '2022-08-01T17:05:36.750Z', }, 1: { note: 'test2', id: 24759045, createTimeStamp: '2022-08-01T17:05:51.755Z', }, note: 'test1', id: 24759045, createTimeStamp: '2022-08-01T17:05:36.750Z', };

Solo quiero que los objetos con números ("0", "1" .. etc.) se inserten en una matriz.

A continuación se muestra lo que estoy tratando de hacer:

 let items = []; for (var prop in obj) { items.push(obj[prop]); } console.log(items);

// Rendimiento esperado:

 [ { note: 'test1', id: 24759045, createTimeStamp: '2022-08-01T17:05:36.750Z', }, { note: 'test2', id: 24759045, createTimeStamp: '2022-08-01T17:05:51.755Z', }, ]

Cualquier sugerencia sería muy apreciada.

about 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Algunas cosas a considerar aquí.

  • ¿Están ordenadas las teclas numéricas?
  • ¿Importa el orden?
  • ¿Son las teclas numéricas un índice del elemento en la matriz?
  • ¿Hay espacios en blanco en las teclas numéricas?

Primera solución, asumiendo que las claves numéricas son el índice en la matriz.

 const items = Object.keys(obj).reduce((acc, key) => { const index = parseInt(key); if (Number.isNaN(index)) { return acc; } acc[index] = obj[key]; return acc; }, []);

Segunda solución, suponiendo que el orden importa, pero que no se garantiza que las teclas numéricas sean contiguas.

 const items = Object.keys(obj) .filter((key) => Number.isNaN(parseInt(key)) === false) .sort() .map((key) => obj[key]);

Tenga en cuenta que Object.keys no garantiza que las claves estén ordenadas alfanuméricamente. Entonces, si el orden importa, entonces debes ordenarlos.

Tercera solución, si el orden no importa.

 const items = Object.keys(obj) .filter((key) => Number.isNaN(parseInt(key)) === false) .map((key) => obj[key]);
about 4 years ago · Santiago Trujillo Report

0

 var result = []; var obj = { "0": { "note": "test1", "id": 24759045, "createTimeStamp": "2022-08-01T17:05:36.750Z" }, "1": { "note": "test2", "id": 24759045, "createTimeStamp": "2022-08-01T17:05:51.755Z" }, "note": "test1", "id": 24759045, "createTimeStamp": "2022-08-01T17:05:36.750Z" } for (var i in obj) result.push(obj[i]); $('#result').html(JSON.stringify(result));
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <div id="result"></div>

Puede lograr esto siguiendo los siguientes pasos.

Copié tu objeto a continuación -->

 var obj = { "0": { "note": "test1", "id": 24759045, "createTimeStamp": "2022-08-01T17:05:36.750Z" }, "1": { "note": "test2", "id": 24759045, "createTimeStamp": "2022-08-01T17:05:51.755Z" }, "note": "test1", "id": 24759045, "createTimeStamp": "2022-08-01T17:05:36.750Z" }

Creó una nueva matriz js -->

 var result = [];

Código -->

 for (var i in obj) result.push(obj[i]);

Encuentre la solución en el enlace a continuación también --> :) :)

https://jsfiddle.net/kavinduxo/95qnpaed/

about 4 years ago · Santiago Trujillo Report

0

Creo que necesitará obtener las claves del objeto, filtrar las no numéricas y luego asignar cada clave al obj[clave]:

 var obj={"0":{"note":"test1","id":24759045, "createTimeStamp":"2022-08-01T17:05:36.750Z"},"1":{"note":"test2","id":24759045, "createTimeStamp":"2022-08-01T17:05:51.755Z"}, "note":"test1","id":24759045,"createTimeStamp":"2022-08-01T17:05:36.750Z"}; console.log( Object.keys(obj) .filter((key) =>!Number.isNaN(parseInt(key))) .map((key) => obj[key]) )

about 4 years ago · Santiago Trujillo 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!