本文介绍了在JavaScript中使用地图功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的json响应结构:
My json response structure:
[
{
"id": 14,
"groupname": "Angular",
"createdAt": "2017-12-15T15:06:39.000Z",
"updatedAt": "2017-12-15T15:06:39.000Z",
"contactgroups": [
{
"id": 1,
"contact": {
"id": 20,
"gsm": "123456789"
}
},
{
"id": 2,
"contact": {
"id": 21,
"gsm": "987654321"
}
}
]
},
{
"id": 15,
"groupname": "React",
"createdAt": "2017-12-15T15:06:45.000Z",
"updatedAt": "2017-12-15T15:06:45.000Z",
"contactgroups": [
{
"id": 3,
"contact": {
"id": 21,
"gsm": "987654321"
}
}
]
},
{
"id": 16,
"groupname": "Vue",
"createdAt": "2017-12-15T15:06:51.000Z",
"updatedAt": "2017-12-15T15:06:51.000Z",
"contactgroups": []
},
{
"id": 17,
"groupname": "NodeJs",
"createdAt": "2017-12-17T16:07:38.000Z",
"updatedAt": "2017-12-17T16:07:38.000Z",
"contactgroups": []
},
{
"id": 18,
"groupname": "RxJS",
"createdAt": "2017-12-21T05:50:50.000Z",
"updatedAt": "2017-12-21T05:50:50.000Z",
"contactgroups": []
}
]
我在contactgroups数组中有两个对象,因此我需要将contactsCount返回为2,
i have two objects inside contactgroups array, so i need to return contactsCount as 2,
如果我在contactgroups中有一个对象,我需要将contactsCount返回为1,是否可以使用Javascript中的 map 方法?
if i have one object inside contactgroups i need to return contactsCount as 1, is it possible to do with map method in Javascript?
我想要像这样的最终输出
I want final output like
[
{
"id": 14,
"groupname": "Angular",
"createdAt": "2017-12-15T15:06:39.000Z",
"updatedAt": "2017-12-15T15:06:39.000Z",
"contactsCount: 2,
"contactgroups": [
{
"id": 1,
"contact": {
"id": 20,
"gsm": "123456789"
}
},
{
"id": 2,
"contact": {
"id": 21,
"gsm": "987654321"
}
}
]
},
{
"id": 15,
"groupname": "React",
"createdAt": "2017-12-15T15:06:45.000Z",
"updatedAt": "2017-12-15T15:06:45.000Z",
"contactsCount: 1,
"contactgroups": [
{
"id": 3,
"contact": {
"id": 21,
"gsm": "987654321"
}
}
]
},
{
"id": 16,
"groupname": "Vue",
"createdAt": "2017-12-15T15:06:51.000Z",
"updatedAt": "2017-12-15T15:06:51.000Z",
"contactsCount: 0,
"contactgroups": []
},
{
"id": 17,
"groupname": "NodeJs",
"createdAt": "2017-12-17T16:07:38.000Z",
"updatedAt": "2017-12-17T16:07:38.000Z",
"contactsCount: 0,
"contactgroups": []
},
{
"id": 18,
"groupname": "RxJS",
"createdAt": "2017-12-21T05:50:50.000Z",
"updatedAt": "2017-12-21T05:50:50.000Z",
"contactsCount: 0,
"contactgroups": []
}
]
现在看,我的最终输出中包含contactsCount.
see now i have contactsCount inside my final output.
这是我的api代码:
exports.getNewGroupForProfsms = (req, res) => {
Group.findAll({
include: [{
model: ContactGroup,
attributes: ['id'],
include: [{
model: Contact,
attributes: ['id', 'gsm']
}]
}],
}).then(data => {
// i am getting json here// how to do map here?
return res.status(200).send(data);
}).catch(err => {
return res.status(400).send(err.message);
});
};
推荐答案
最后,这个对我有用:
exports.getNewGroupForProfsms = (req, res) => {
Group.findAll({
include: [{
model: ContactGroup,
attributes: ['id'],
include: [{
model: Contact,
attributes: ['id', 'gsm']
}]
}],
}).then(data => {
// change happen here
return res.status(200).send(data.map((x) => {
// assign contactsCount to each row
return Object.assign({
contactsCount: x.contactgroups.length,
}, x.toJSON()) // update toJSON have a try
}));
}).catch(err => {
return res.status(400).send(err.message);
});
};
这篇关于在JavaScript中使用地图功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!