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

116
Visualizações
Vuelva a formatear una matriz de objetos en Javascript en formato de matriz personalizado por ID de propiedad

Tengo problemas para reformatear una matriz de objetos en Javascript. Tengo una matriz que se ve así:

 [ { "deviceid": 42, "x": "2022-03-26T00:00:18", "y": 17.8, }, { "deviceid": 42, "x": "2022-03-26T00:01:18", "y": 17.8, }, { "deviceid": 43, "x": "2022-03-26T00:02:18", "y": 17.8, { "deviceid": 43, "x": "2022-03-26T00:02:18", "y": 17.8, }]

Quiero remodelarlo para que el nuevo formulario sea un registro por ID de dispositivo y todos los valores x e y en la misma fila.

 [ { "deviceid": 42, "x": ["2022-03-26T00:00:18","2022-03-27T00:00:18"], "y": [17.8, 15.6], }, { "deviceid": 43, "x": ["2022-03-26T00:01:18","2022-03-27T00:00:18"], "y": [17.8, 19.1], }]

¿Cómo puedo hacer que esto suceda?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Puede usar reduce() para hacer la reducción de sus valores usando un objeto JavaScript. Después de la reducción, obtenga los valores del objeto usando Object.values() .

 const data = [ { deviceid: 42, x: "2022-03-26T00:00:18", y: 17.8, }, { deviceid: 42, x: "2022-03-26T00:01:18", y: 15.6, }, { deviceid: 43, x: "2022-03-26T00:02:18", y: 17.8, }, { deviceid: 43, x: "2022-03-26T00:02:18", y: 19.1, }, ]; const result = data.reduce((devices, device) => { // check if we have encountered this decive before using the deviceId if (!devices.hasOwnProperty(device.deviceid)) { // we have not: create an key-value pair using device ID as key and device info as value // use an array for x and y devices[device.deviceid] = { deviceId: device.deviceid, x: [device.x], y: [device.y], }; } else { // we have seen this device before // get the device value using the key (deviceId) and push new x and y values to it const curDev = devices[device.deviceid]; curDev.x.push(device.x); curDev.y.push(device.y); } // return JS object of devices for next iteration/ result return devices; }, {}); console.log(Object.values(result));

Tenga en cuenta: creo que la entrada que proporcionó en su pregunta contiene algunos errores, probablemente al copiar/pegar, ya que la salida esperada contiene valores que no están en la entrada en absoluto. Cambié los valores de y en la entrada para mostrarle que la salida es realmente lo que espera.

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