簡體   English   中英

Map function 從過濾后的 object 構建一個數組

[英]Map function to build an array from filtered object

我正在嘗試了解 map 函數,但目前沒有太大成功。

我目前有一個對象列表,正在嘗試使用 map function 重新映射到新的 object 以返回由創建的屬性索引的 map 和一個 wooids 列表。

寫了我的map function,我好像只是最后一次回來。

 const variants = [ { created: '2022-03-06', hashname: 'c78ba80402290724609a5e98c369c90984494152', hashobject: '80864e6329d5e305a512ace872ad7d56a3f41095', hashparent: '19c5d50ddddeb7c9a92469df78c47d9d611f1599', action: 'added', wooid: 7288 }, { created: '2022-03-06', hashname: 'c78ba80402290724609a5e98c369c90984494152', hashobject: '80864e6329d5e305a512ace872ad7d56a3f41095', hashparent: '19c5d50ddddeb7c9a92469df78c47d9d611f1599', action: 'added', wooid: 7289 } ] const res = Object.fromEntries(variants.map(k => [k.created, [k.wooid]])) console.log(res)
當前 output

{ '2022-03-06': [ 7289, 7288 ] }

所需的 output:

 { '2022-03-06': [ 7289, 7288 ] }

任何幫助將不勝感激,因為我不確定如何動態填充數組以包含所有其他整體(總共 6 個)。

使用Array.prototype.reduce()構建您的 object。檢查您是否已經為每個created的值創建一個鍵,如果沒有,則創建一個空數組。 然后是 append 的wooid

 const variants = [{"created":"2022-03-06","hashname":"c78ba80402290724609a5e98c369c90984494152","hashobject":"80864e6329d5e305a512ace872ad7d56a3f41095","hashparent":"19c5d50ddddeb7c9a92469df78c47d9d611f1599","action":"added","wooid":7288},{"created":"2022-03-06","hashname":"c78ba80402290724609a5e98c369c90984494152","hashobject":"80864e6329d5e305a512ace872ad7d56a3f41095","hashparent":"19c5d50ddddeb7c9a92469df78c47d9d611f1599","action":"added","wooid":7289}] const res = variants.reduce((acc, { created, wooid }) => ({...acc, [ created ]: [...acc[created]?? [], // init to an empty array if unset wooid ] }), {}) console.log(res)

這將按照它們在原始數據中出現的順序created並收集wooid值。

暫無
暫無

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

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