[英]how to build a javascript object using an array and the map function?
[英]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)
{ '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.