Я хотел бы перебрать массив объектов, заменить все значения ключа другой строкой (все значения с ключом FirstName будут «aaaa», а LastName будет «bbbbb») и отправить его на клиентскую сторонучерез json response.
let data = [{
"id": "1",
"FirstName": "John",
"LastName": "Doe",
}, {
"id": "2",
"FirstName": "Jane",
"LastName": "Doe",
}
];
Я использую метод подчеркивания .each с этой рекурсивной функцией
function filter (obj, key, value) {
_(obj).each(function (v, k) {
if (k === key) {
obj[k] = value
} else if (typeof v == 'object') {
filter(obj[k], value,key)
}
});
return {}
}
, и если я использую его таким образом, то он работает, console.log (данные) и все заменено, как и предполагалось.
filter(data, 'FirstName', "aaaa");
filter(data, 'LastName', "bbbb");
, но когда я пытаюсь использовать его на экспресс-маршрутизаторе .get отправляет данные без изменений (обратите внимание, что массив данных поступает из model.allData)
router.get('/route1',
function (req, res) {
if (req.query) {
model.allData(req.query,
function (error, data) {
if (error) {
res.status(500).json({message: error});
} else {
return (function (filter) {
filter(data, 'FirstName', "aaaa");
filter(data, 'LastName', "bbbb")
res.status(200).json({data:filter})
});
}
});
}
});