3 回答
TA贡献1851条经验 获得超3个赞
您的代码不起作用,因为新数组将包含映射器函数返回的内容。
即使它与原始数组的内容无关,它也会保持其返回值不变。
因此,如果您返回一个 object {posts:[]},它将是输出。
您必须将该对象合并到映射器函数内的当前数组元素中。
您可以使用对象扩展语法来合并两个对象:
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
}
];
columns.map(obj => ({...obj, posts: []}));
但是,这是一个相对较新的功能,因此,如果您需要更大的支持,您可以使用Object.assign:
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
}
];
columns.map(obj => Object.assign({posts: []}, obj));
TA贡献1777条经验 获得超10个赞
你可以试试:
let newColumns = columns.map((item) => Object.assign({}, item, {posts: []});
console.log(newColumns);TA贡献1810条经验 获得超4个赞
使用forEach();
columns.forEach(el => el.posts=[] )
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
}
];
columns.forEach(el => el.posts=[] )
console.log(columns)
添加回答
举报
