【发布时间】:2021-09-30 18:29:52
【问题描述】:
具有这种格式的对象数组:
const data = [
{country_id: 1, country: "Greece", value: 3},
{country_id: 2, country: "Cyprus", value: 2},
{country_id: 3, country: "Turkey", value: 4}
]
如何使用 JavaScript 乘法/克隆每个对象以获取以下对象数组?我想将每个对象乘以value 中指定的次数并得到一个新数组。
const new_data = [
{id: 1, country_id: 1, country: "Greece", value: 3},
{id: 2, country_id: 1, country: "Greece", value: 3},
{id: 3, country_id: 1, country: "Greece", value: 3},
{id: 4, country_id: 2, country: "Cyprus", value: 2},
{id: 5, country_id: 2, country: "Cyprus", value: 2},
{id: 6, country_id: 3, country: "Turkey", value: 4},
{id: 7, country_id: 3, country: "Turkey", value: 4},
{id: 8, country_id: 3, country: "Turkey", value: 4},
{id: 9, country_id: 3, country: "Turkey", value: 4}
]
到目前为止,我最好的尝试是使用 Object.assign,但不幸的是,地图返回的数组与 data 中的数组相同:
const new_data = data.map((d, i) => {
for (var i = 0; i < d.mult; ++i) {
Object.assign({}, d[i]);
}
return d;
})
【问题讨论】:
-
Object.assign({}, d[i], {id: i}) ...我认为这也应该分配一个新的id
标签: javascript arrays javascript-objects clone