[英]Convert object key to array with values number of key with Lodash
我有一個帶有產品的 object:
products: {
bread: 1,
milk: 2,
cheese: 2,
chicken: 1,
}
我想要一個帶有這樣產品名稱的數組:
products: ['bread', 'milk', 'milk', 'cheese', 'cheese', 'chicken']
我試圖將lodash
與reduce
方法一起使用,但我不知道如何在數組中“乘”這個產品。
我認為這不是一個好主意:
_.reduce(products, (result, value, key) => {
for(let i = 0; i < value; i++) {
result.push(key);
}
return result;
}, [])
因此,如果有人可以提供幫助,我將不勝感激。
使用 lodash,您可以使用_.flatMap()
迭代數組。 使用_.overArgs()
創建回調,它將值(通過_.identity()
)和密鑰(用_.constant()
包裝)傳遞給_.times()
:
const obj = { products: { bread: 1, milk: 2, cheese: 2, chicken: 1, } } const result = _.flatMap(obj.products, _.overArgs(_.times, [_.identity, _.constant])) console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.js"></script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.