我有一个产品对象:
products: {
bread: 1,
milk: 2,
cheese: 2,
chicken: 1,
}
我想要一个包含产品名称的数组,如下所示:
products: ['bread', 'milk', 'milk', 'cheese', 'cheese', 'chicken']
我试图使用lodash
with reduce
方法,但我不知道如何在数组中“乘”这个产品。
我认为这不是一个好主意:
_.reduce(products, (result, value, key) => {
for(let i = 0; i < value; i++) {
result.push(key);
}
return result;
}, [])
因此,如果有人可以提供帮助,我将不胜感激。
你可以使用flatMap https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap超过entries https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/entries物体的
const products = {
bread: 1,
milk: 2,
cheese: 2,
chicken: 1,
}
const output = Object.entries(products).flatMap(([k, v]) => Array(v).fill(k))
console.log(output)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)