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)
添加回答
舉報