在nodejs中循环遍历数组,按数量打印数据



大家好,我有一个小要求,我将有下面的数组,

{items:[{upc:a,quantity:2},{upc:b,quantity:3}]}

我需要把它转换成下面的格式

{products:[{barcode:a},{barcode:a},{barcode:b},{barcode:b},{barcode:b}]}

对此有什么建议会有帮助的

是的,javascript有允许这样做的本地方法。

const source = {items:[{upc:'a',quantity:2},{upc:'b',quantity:3}]}
const res = source.items.map(item => new Array(item.quantity).fill({barcode: item.upc})).flat()
console.log({products: res});

PS:输出看起来有点奇怪,因为几个字段包含对同一个对象的引用- console.log告诉你,所以它不必为每个对象重复输出。

但是对象本身包含您需要的值。如果你需要有单独的对象(例如,如果你只想更新其中一个),那么你可以这样做:

const source = {items:[{upc:'a',quantity:2},{upc:'b',quantity:3}]}
const res = source.items.map(item => new Array(item.quantity).fill(0).map(x => ({barcode: item.upc}))).flat()
console.log({products: res});

最新更新