<JavaScript> 重組資料:flatMap與map的差異

閱讀時間約 4 分鐘


前幾日收到要做圖表的需求,看了一下後端傳來的資料無法直接餵給圖表套件使用,所以這邊要當套件和後端的橋樑將資料重組,接下來請看下方需求實例

需求

原始資料

[
{
"interval": "100", // 獎金
"rewardsCount": {
"100 POINTS": "2", // 活動名稱:次數
"300 CASH": "6",
"400 CASH": "1",
"200 POINTS": "6"
}
},
{
"interval": "5",
"rewardsCount": {
"10 CASH": "3",
"30 CASH": "1"
}
},
{
"interval": "1000",
"rewardsCount": {}
},
{
"interval": "10",
"rewardsCount": {
"10 CASH": "3",
"30 CASH": "4"
}
}
]

希望重組資料結果為,只要這些獎勵的名字

[
"100 POINTS",
"300 CASH",
"400 CASH",
"200 POINTS",
"10 CASH",
"30 CASH"
]


解法

說明

  • Object.keys取得rewardsCount內的key列表
  • flatMap解開下一層
  • 使用new Set確保資料不會重複
  • 使用... 將陣列展開
const getRewardName = [...new Set(rewardGroup.flatMap(item => Object.keys(item.rewardsCount)))];

最終結果,直接取得全部獎項的名字

[
"100 POINTS",
"300 CASH",
"400 CASH",
"200 POINTS",
"10 CASH",
"30 CASH"
]

參考


其他

假設使用map而非flatMap

const getRewardName = [...new Set(rewardGroup.map(item => Object.keys(item.rewardsCount)))];

結果會是,Object.keys確實將每個物件的key取出return []

[
[
"100 POINTS",
"300 CASH",
"400 CASH",
"200 POINTS"
],
[
"10 CASH",
"30 CASH"
],
[],
[
"10 CASH",
"30 CASH"
]
]

但這個結果並不是我需要的,所以我使用flatMap,而有了這個例子就能很清楚了解flatMapmap的差異了


結語

以上就是今天重組資料的Code分享,下次有想到什麼再跟大家分享XD 有疑問或是想了解什麼都可以留言,我如果有空會回覆~


開發之路有你有我有卡比,收錄各種開發的技術分享與疑難雜症解★☆
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
👨‍💻簡介 在程式開發的世界中,我們經常需要處理各式各樣的資料,可能是一個人的個人資訊,也可能是一個商品的詳細訊息。當我們面對這麼多的資料時,如何將它們有系統地整理起來,讓我們能夠輕鬆地找到所需,便成了一個重要的課題。這時,結構體的概念就像是一道曙光,為我們提供了一個非常有力的工具。 結
提早開始!!別低估複利的力量,至少撥一筆錢,讓他為你工作 Buffett and Berkshire 巴菲特和伯克希爾 Warren Buffett represents the epitome of long-term compounding when it comes to invest
Thumbnail
  今天放榜了,雖然也有填其他學系,但想先來說說彰師大這間我有去面試的學校,因為之前分享了面試心得,所以這篇想著重在我如何準備審查資料,那按照我的準備順序,我會說明自己準備的過程。 我自己在備審拿到86.5的成績,不算很好,但因為我完全沒有生物相關的活動或競賽經驗,所以應該也有扣分
Thumbnail
高股息策略是台灣市場備受喜愛的策略,券商也因應此趨勢,推出了0056及00878等商品。但是有一派人認為高股息只是左手換右手,並不能帶來超額報酬。
Thumbnail
什麼是自動再平衡? 再平衡是買賣資產以使您的投資組合恢復到目標權重的過程。 當一種資產的表現優於另一種資產時,它在投資組合中的權重就會增加,這可能會使持有者面臨比他們希望的更大的風險。投資組合需要定期重新平衡至目標權重,鎖定收益並重新投資於表現不佳的資產。 為什麼這有關係? 重新平衡很重要,因為隨著
Thumbnail
這樣分析完之後,你就會很恐怖的發現一個事實:這世界上所有的組織,只要「信息量」與「組織度」其中「任一」比「理想費拉」還要小,就註定無法通過時間的考驗,即使有無限的理想費拉供其寄生都不行,必須要有更高層次的秩序輸入才能替這些群體續命。這就是「神意秩序」存在的明證。
Thumbnail
槓桿型 ETF 可以買嗎?買槓桿型 ETF 不如直接買期貨?說說我的看法。
Thumbnail
股市原本就是一種循環,多頭,盤整到空頭!!!這一連串組合成一個完整的交易週期。
Thumbnail
股市原本就是一種循環,多頭,盤整到空頭!!!這一連串組合成一個完整的交易週期
Thumbnail
2019年全年的股息+債息應該可以領到約55萬左右台幣(6,242USD&16,000SGD計算),按2018年底市值算的現金收益率大約是6.6%左右。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
👨‍💻簡介 在程式開發的世界中,我們經常需要處理各式各樣的資料,可能是一個人的個人資訊,也可能是一個商品的詳細訊息。當我們面對這麼多的資料時,如何將它們有系統地整理起來,讓我們能夠輕鬆地找到所需,便成了一個重要的課題。這時,結構體的概念就像是一道曙光,為我們提供了一個非常有力的工具。 結
提早開始!!別低估複利的力量,至少撥一筆錢,讓他為你工作 Buffett and Berkshire 巴菲特和伯克希爾 Warren Buffett represents the epitome of long-term compounding when it comes to invest
Thumbnail
  今天放榜了,雖然也有填其他學系,但想先來說說彰師大這間我有去面試的學校,因為之前分享了面試心得,所以這篇想著重在我如何準備審查資料,那按照我的準備順序,我會說明自己準備的過程。 我自己在備審拿到86.5的成績,不算很好,但因為我完全沒有生物相關的活動或競賽經驗,所以應該也有扣分
Thumbnail
高股息策略是台灣市場備受喜愛的策略,券商也因應此趨勢,推出了0056及00878等商品。但是有一派人認為高股息只是左手換右手,並不能帶來超額報酬。
Thumbnail
什麼是自動再平衡? 再平衡是買賣資產以使您的投資組合恢復到目標權重的過程。 當一種資產的表現優於另一種資產時,它在投資組合中的權重就會增加,這可能會使持有者面臨比他們希望的更大的風險。投資組合需要定期重新平衡至目標權重,鎖定收益並重新投資於表現不佳的資產。 為什麼這有關係? 重新平衡很重要,因為隨著
Thumbnail
這樣分析完之後,你就會很恐怖的發現一個事實:這世界上所有的組織,只要「信息量」與「組織度」其中「任一」比「理想費拉」還要小,就註定無法通過時間的考驗,即使有無限的理想費拉供其寄生都不行,必須要有更高層次的秩序輸入才能替這些群體續命。這就是「神意秩序」存在的明證。
Thumbnail
槓桿型 ETF 可以買嗎?買槓桿型 ETF 不如直接買期貨?說說我的看法。
Thumbnail
股市原本就是一種循環,多頭,盤整到空頭!!!這一連串組合成一個完整的交易週期。
Thumbnail
股市原本就是一種循環,多頭,盤整到空頭!!!這一連串組合成一個完整的交易週期
Thumbnail
2019年全年的股息+債息應該可以領到約55萬左右台幣(6,242USD&16,000SGD計算),按2018年底市值算的現金收益率大約是6.6%左右。