通过键替换值并将其发送到 json

replace values by keys and send it in a json

我想迭代一个对象数组,用不同的字符串替换所有键的值(具有键 FirstName 的所有值将是 "aaaa",而 LastName 将是 "bbbbb")和通过 json 响应将其发送到客户端。

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");

但是当我尝试在 express router.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})
                    });

                }
            });
    }
});

我找到了答案:

使用: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});
                };

            }
        });
}
});