通过键替换值并将其发送到 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});
};
}
});
}
});
我想迭代一个对象数组,用不同的字符串替换所有键的值(具有键 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});
};
}
});
}
});