Estoy intentando actualizar una matriz existente de objetos agregando un nuevo objeto:
const oldArray = [{ name: 'First', value: 'one' }, { name: 'Second', value: 'two' }, { name: 'Third', value: 'three' }] const newArray = [...oldArray, { name: 'Fourth', value: 'four' }] Sin embargo, mi intención es configurar newArray para que el cuarto objeto se convierta en el tercer elemento (índice 2) en oldArray . ¿Cómo puedo configurar newArray para que el nuevo objeto se inyecte como el tercer elemento en el operador de distribución ...oldArray , sin tener que escribir todos los elementos de oldArray nuevamente en newArray ?
Puede usar .slice() junto con la sintaxis extendida.
const oldArray = [{ name: 'First', value: 'one' }, { name: 'Second', value: 'two' }, { name: 'Third', value: 'three' }] const newArray = [...oldArray.slice(0, 2), { name: 'Fourth', value: 'four' }, ...oldArray.slice(2)]; console.log(newArray);Tendrías que hacer dos untables usando slice
const oldArray = [{ name: 'First', value: 'one' }, { name: 'Second', value: 'two' }, { name: 'Third', value: 'three' }] const newArray = [...oldArray.slice(0,2), { name: 'Fourth', value: 'four' }, ...oldArray.slice(2)] console.log(newArray.map(x => x.name));otra opción es simplemente usar splice()
const oldArray = [{ name: 'First', value: 'one' }, { name: 'Second', value: 'two' }, { name: 'Third', value: 'three' }] const newArray = [...oldArray] newArray.splice(2,0,{ name: 'Fourth', value: 'four' }); console.log(newArray.map(x => x.name));