Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

169
Vistas
how to change keys of array

I have the following array of objects. How do I change the keys of the array (0,1) to the skipperid (217,1)

[0:
        {
            "type": "RES",
            "date": "2022-05-14",
            "doy": 133,
            "skipperid": 217,
            "boat": "Laura",
            "start": "09:00:00",
            "end": "22:00:00",
            "spots": 5,
            "fname": "David",
            "lname": "Cross"
        }, 
     1:{
            "type": "SAIL",
            "date": "2022-05-14",
            "doy": 133,
            "skipperid": 1,
            "boat": "Avrora",
            "start": "10:00:00",
            "end": "13:00:00",
            "spots": 3,
            "fname": "Bob",
            "lname": "Smith"
        }
    ]
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Javascript arrays always have numeric indexes. If you want to have keys, you'll need to convert into an object as shown here.

let data = [{
    "type": "RES",
    "date": "2022-05-14",
    "doy": 133,
    "skipperid": 217,
    "boat": "Laura",
    "start": "09:00:00",
    "end": "22:00:00",
    "spots": 5,
    "fname": "David",
    "lname": "Cross"
  },
  {
    "type": "SAIL",
    "date": "2022-05-14",
    "doy": 133,
    "skipperid": 1,
    "boat": "Avrora",
    "start": "10:00:00",
    "end": "13:00:00",
    "spots": 3,
    "fname": "Bob",
    "lname": "Smith"
  }
]

data = data.reduce((b,a) => ({...b, [a.skipperid]:a}), {});
console.log(data['217'])

about 4 years ago · Juan Pablo Isaza Denunciar

0

I definitely suggest using an object like @Kinglish example.

Moving the position from current index to index by skipperid creates an array of size (highest skipperid), leaving all index != skipperid as undefined

USE AN OBJECT

This is messy:

let data = [{
    "type": "RES",
    "date": "2022-05-14",
    "doy": 133,
    "skipperid": 217,
    "boat": "Laura",
    "start": "09:00:00",
    "end": "22:00:00",
    "spots": 5,
    "fname": "David",
    "lname": "Cross"
  },
  {
    "type": "SAIL",
    "date": "2022-05-14",
    "doy": 133,
    "skipperid": 1,
    "boat": "Avrora",
    "start": "10:00:00",
    "end": "13:00:00",
    "spots": 3,
    "fname": "Bob",
    "lname": "Smith"
  }
]
data.forEach((o,i,self)=> {
if(o?.skipperid != i){
self[o.skipperid] = o;
self[i] = undefined
}
})
console.log(data)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Observations :

  • JSON you provided is not a valid JSON.
  • result will be an object instead of an array.

Working Demo :

const arr = [{
        "type": "RES",
        "date": "2022-05-14",
        "doy": 133,
        "skipperid": 217,
        "boat": "Laura",
        "start": "09:00:00",
        "end": "22:00:00",
        "spots": 5,
        "fname": "David",
        "lname": "Cross"
    },
    {
        "type": "SAIL",
        "date": "2022-05-14",
        "doy": 133,
        "skipperid": 1,
        "boat": "Avrora",
        "start": "10:00:00",
        "end": "13:00:00",
        "spots": 3,
        "fname": "Bob",
        "lname": "Smith"
    }
];

const obj = {};

arr.forEach((item) => {
    obj[item.skipperid] = item
});

console.log(obj)

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda