Ваш код не работает, потому что новый массив будет содержать именно то, что возвращает функция mapper.
Даже если он не имеет ничего общего с содержимым исходного массива, его возвращаемое значение останется нетронутым.
Итак, если вы вернете объект {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));