簡體   English   中英

如何存儲以前的值而不是將值存儲在反應狀態的對象數組中

[英]How can I store previous values instead of storing the value in array of objects in react state

我將 prev 值存儲在對象數組中,例如[{ActFollow: 'BlN'},{ActSendGift: 'BlY'},{ActSubscribe: 'BlY'}]我想將鍵和值存儲在對象中像這樣 {ActFollow: 'BlN',ActSendGift: 'BlY', ActSubscribe: 'BlY'}

  const [activityTypes, setActivityTypes] = useState<any>([]); // state
 .then((response: any) => {
            setActivityTypes((oldArray: any) => [
              ...oldArray,
              {[item.channelSettingTypeId]: response.settingValue},
            ]);
          });

您可以將對象數組縮減為一個對象。

您可以通過將 (...) 當前對象傳播到結果對象中來做到這一點,如下所示:

 const arrOfObjs = [{ ActFollow: "BlN" }, { ActSendGift: "BlY" }, { ActSubscribe: "BlY" }], obj = arrOfObjs.reduce((res, o) => ({ ...res, ...o }), {}); console.log(obj);

您也可以使用Object.assign來完成,如下所示:

 const arrOfObjs = [{ ActFollow: "BlN" }, { ActSendGift: "BlY" }, { ActSubscribe: "BlY" }], obj = arrOfObjs.reduce((res, o) => Object.assign(res, o), {}); console.log(obj);

這個怎么樣,如果嵌套只有一層深

 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)

你也可以在 React 中使用這個簡單的想法。 只需保持狀態中的默認空對象並更新對象即可。

使用展開運算符

 const items = [{ActFollow: 'BlN', Anurag: 26},{ActSendGift: 'BlY'},{ActSubscribe: 'BlY'}] let obj ={} items.forEach((item) => { obj = { ...obj, ...item } }) console.log(obj)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM