Estoy almacenando los valores anteriores en una matriz de objetos, por ejemplo [{ActFollow: 'BlN'},{ActSendGift: 'BlY'},{ActSubscribe: 'BlY'}] Quiero almacenar la clave y los valores en un objeto así {ActFollow: 'BlN',ActSendGift: 'BlY', ActSubscribe: 'BlY'}
const [activityTypes, setActivityTypes] = useState<any>([]); // state .then((response: any) => { setActivityTypes((oldArray: any) => [ ...oldArray, {[item.channelSettingTypeId]: response.settingValue}, ]); });Puede reducir la matriz de objetos a un objeto.
Puede hacerlo extendiendo (...) el objeto actual en el objeto resultante, como se muestra a continuación:
const arrOfObjs = [{ ActFollow: "BlN" }, { ActSendGift: "BlY" }, { ActSubscribe: "BlY" }], obj = arrOfObjs.reduce((res, o) => ({ ...res, ...o }), {}); console.log(obj);También puede hacerlo usando Object.assign , como se muestra a continuación:
const arrOfObjs = [{ ActFollow: "BlN" }, { ActSendGift: "BlY" }, { ActSubscribe: "BlY" }], obj = arrOfObjs.reduce((res, o) => Object.assign(res, o), {}); console.log(obj);¿Qué tal esto, si el anidamiento tiene solo un nivel de profundidad?
const data = [{ActFollow: 'BlN',ActSendGift: 'BlY', ActSubscribe: 'BlY'}] console.log([{...data[0],"hey" : "world"}]) const items = [{ActFollow: 'BlN'},{ActSendGift: 'BlY'},{ActSubscribe: 'BlY'}] let object = {} items.forEach(item=>{ for (const [key, value] of Object.entries(item)) { object = { ...object, [key]: value } } }) console.log(object)También puedes usar esta idea simple en React. Simplemente mantenga presionado el objeto vacío predeterminado en el estado y actualice el objeto.