【发布时间】:2020-04-06 11:32:05
【问题描述】:
我正在尝试使用 map 向我的对象添加一个新的键和值对。该值只是一个空数组,以便我以后可以将对象推入其中。
这是我的代码:
let columns = [
{
_id: "5e8af4591c9d440000a1a4ed",
column_name: "Opportunities",
column_value: 0,
column_percentage: 0.25
},
{
_id: "5e8af4a81c9d440000a1a4ee",
column_name: "Prospects",
column_value: 0,
column_percentage: 0.5
}
];
let output = columns.map(() => ({posts: []}));
console.log(output)
这是我希望我的对象在映射后的样子:
let columns = [
{
_id: "5e8af4591c9d440000a1a4ed",
column_name: "Opportunities",
column_value: 0,
column_percentage: 0.25,
posts: []
},
{
_id: "5e8af4a81c9d440000a1a4ee",
column_name: "Prospects",
column_value: 0,
column_percentage: 0.5,
posts: []
}
];
但是当前的输出是:
[
{
posts: []
},
{
posts: []
}
]
【问题讨论】:
-
columns.map((el) => { return {...el, posts: []} }); -
Array map 返回一个新数组,它不会修改现有数组。因此,虽然到目前为止所有其他答案都很好,但请记住,您可能想要的是
new_columns = columns.map(lambda)。 -
@ShapeOfMatter 谢谢我想知道为什么没有一个答案有效
标签: javascript arrays object