假设我有这个数组:
[
{
id: 1,
name: "Foo",
quantity: 2
},
{
id: 2,
name: "Bar",
quantity: 3
},
]
我想根据quantity
属性的值来扩展/乘以数组元素。所需的输出是这样的:
[
{
id: 1,
name: "Foo"
},
{
id: 1,
name: "Foo"
},
{
id: 2,
name: "Bar"
},
{
id: 2,
name: "Bar"
},
{
id: 2,
name: "Bar"
}
]
我可以不使用循环(for,foreach等)来获得该结果吗?可以使用Array
对象的内置方法吗?
修改:
对于任何可能需要它的人,这是我使用循环的解决方案。
const arrayOfObjects = [
{
id: 1,
name: "Foo",
quantity: 2
},
{
id: 2,
name: "Bar",
quantity: 3
},
];
let result = [];
arrayOfObjects.forEach(element => {
for (let i = 0; i < element.quantity; i++) {
const {
quantity,
...newElement
} = element;
result.push(newElement);
}
});
答案 0 :(得分:0)
这是我自己使用循环的解决方案,正如注释中所述,使用Array
对象的内置方法并不像使用简单循环那样有效。
const arrayOfObjects = [
{
id: 1,
name: "Foo",
quantity: 2
},
{
id: 2,
name: "Bar",
quantity: 3
},
];
let result = [];
arrayOfObjects.forEach(element => {
for (let i = 0; i < element.quantity; i++) {
const {
quantity,
...newElement
} = element;
result.push(newElement);
}
});