En una array of objects , intento crear una nueva propiedad basada en otra array of numbers .
El problema es que el number of array tiene un elemento menos, por lo que queda undefined en el último índice de la array of objects .
¿Cómo manejar ese caso, si la nueva propiedad creada no está undefined ? Vea el ejemplo de código a continuación
const sortArr = [3, 2, 1]; const items= [ { a: 1, }, { a: 2, }, { a: 3, }, { a: 4, }, ]; const res = items.map((item, idx) => ({ ...item, sortItem:sortArr[idx] })); console.log(res)si es el último en la matriz, no muestra nada/cadena vacía
Para usar una cadena vacía como reserva si sortArr[inx] no existe, use el operador de fusión nula ( ?? ) :
sortItem: sortArr[idx] ?? '' const sortArr = [3, 2, 1]; const items= [{a: 1, }, {a: 2, }, {a: 3, }, {a: 4, }, ]; const res = items.map((item, idx) => ( { ...item, sortItem: sortArr[idx] ?? '' } )); console.log(res)Puede configurar sortItem en función de si idx es menor que sortArr.length
sortItem: idx < sortArr.length ? sortArr[idx] : "no element at that position"