大家好,我有一个小要求,我将有下面的数组,
{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});