quiero agregar un objeto a otro objeto usando mecanografiado.
a continuación se muestra data1
data1 = {firstDetails: {...}} data1 = { firstDetails: { id: '1', name: 'first' description: 'description' //other fields, } }y hay data2 como a continuación
data2 {secondDetails: {...}} const data2 = { secondDetails: { id: '1', items: [], values: [], } }ahora quiero eliminar la identificación de propiedad de secondDetails y luego tomar elementos y valores de data2 y agregarlos a data1.
por lo que el resultado esperado es como a continuación
{ firstDetails: { id: '1', name: 'first', description: 'description', items: [], values: [], } }He intentado como a continuación,
const formattedData2 = formattedData2.secondDetails; const without_id = omit(formattedData2, 'id') data1.firstDetails = Object.assign(data1.firstDetails, without_id);pero esto da error en dat1.firstDetails en la última línea. dice que los datos variables tienen implícitamente cualquier tipo.
alguien podría ayudarme a arreglar esto. ¿Cómo puedo poner un objeto en otro usando mecanografiado? Gracias.
Usar desestructuración con descanso en segundos detalles. De esta manera, no incluirá la identificación de la segunda
data1 = { firstDetails: { id: "1", name: "first", description: "description", }, }; const data2 = { secondDetails: { id: "2", items: [], values: [], }, }; const { id, ...restSecondDetails } = data2.secondDetails; data1.firstDetails = { ...data1.firstDetails, ...restSecondDetails }; console.log(data1)El uso del operador de spread y delete lo ayudará aquí con un ejemplo
delete formattedData2.secondDetails.id; const object = {...data1.firstDetails, ...formattedData2.secondDetails}Si desea enviar la propiedad al primer usuario del objeto;
Object.assign(data1.firstDetails, data2.secondDetails)Hay varias formas de hacer esto. No usaría delete ya que esto conlleva una sobrecarga innecesaria.
Una forma general simple de hacer esto sería la siguiente
const combinedObject = firstDetails Object.keys(secondDetails).forEach(key => { if (key !== 'id') { combinedObject[key] = secondDetails[key] } })