замените значения ключами и отправьте их в формате json - PullRequest
0 голосов
/ 14 октября 2018

Я хотел бы перебрать массив объектов, заменить все значения ключа другой строкой (все значения с ключом 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})
                    });

                }
            });
    }
});

1 Ответ

0 голосов
/ 15 октября 2018

Я нашел ответ:

, используя: ES6 Оператор распространения :

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 {
                let filter = structureArray.map(o =>
                    ({ ...o, "FirstName": "aaaa","LastName":"bbbb" }));
                res.status(200).json({data: filter});
                };

            }
        });
}
});
...