【发布时间】:2023-03-04 15:51:01
【问题描述】:
我有一个产品对象:
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;
}, [])
如果有人能帮忙,我将不胜感激。
【问题讨论】:
-
为什么您的解决方案不是一个好主意?编辑:如果你愿意,你可以减少两次(用 reduce 替换 for 循环)?
-
您的解决方案似乎完全有效,我不会以任何其他方式这样做(除了不使用 lodash,因为我并没有真正挖掘它,但如果您仍然使用它......为什么不是)。
-
如果你不喜欢使用
for循环来“乘”产品,你可以改用Array#fill方法
标签: javascript arrays object lodash