![](/img/trans.png)
[英]Javascript(NodeJs) - Conversion of Arrays and Objects to bulk insert in mysql(Sequelize)
[英]Conversion of Array and objects to bulk insert in mysql Sequelize + Nodejs
这是我的json对象:
{
"groups":
[
{
"id": 1,
"groupname": "Angular",
"createdAt": "2017-12-05T09:36:05.000Z",
"updatedAt": "2017-12-05T09:36:05.000Z",
"contactgroups": [
{
"id": 1,
"contact":
{
"gsm": "12345"
}
},
{
"id": 3,
"contact":
{
"gsm": "54321"
}
},
{
"id": 4,
"contact":
{
"gsm": "99999"
}
}],
"select": true
},
{
"id": 2,
"groupname": "React",
"createdAt": "2017-12-05T09:36:10.000Z",
"updatedAt": "2017-12-05T09:36:10.000Z",
"contactgroups": [
{
"id": 2,
"contact":
{
"gsm": "66666"
}
},
{
"id": 5,
"contact":
{
"gsm": "54321"
}
}],
"select": true
},
{
"id": 3,
"groupname": "Vue",
"createdAt": "2017-12-05T09:36:15.000Z",
"updatedAt": "2017-12-05T09:36:15.000Z",
"contactgroups": [
{
"id": 6,
"contact":
{
"gsm": "12345"
}
}]
},
],
"sender": "ifelse",
"message": "test"
}
我想像上面这样转换对象:
[
{"gsm": 12345, "sender": "ifelse", "message": "test"},
{"gsm": 54321, "sender": "ifelse", "message": "test"},
{"gsm": 99999, "sender": "ifelse", "message": "test"},
{"gsm": 66666, "sender": "ifelse", "message": "test"},
{"gsm": 54321, "sender": "ifelse", "message": "test"},
{"gsm": 12345, "sender": "ifelse", "message": "test"},
]
然后只有我能够批量插入后继。
如何使用for或foreach或任何其他函数执行此操作? 做这个东西?
foreach更好吗? 地图有可能吗?
我想要我的最终json对象,然后仅允许序列化来批量创建。
附:我要“选择”:仅true json gsm数字
就您而言,我正在使用for循环制作JSON对象
var data={ "groups": [ { "id": 1, "groupname": "Angular", "createdAt": "2017-12-05T09:36:05.000Z", "updatedAt": "2017-12-05T09:36:05.000Z", "contactgroups": [ { "id": 1, "contact": { "gsm": "12345" } }, { "id": 3, "contact": { "gsm": "54321" } }, { "id": 4, "contact": { "gsm": "99999" } }], "select": true }, { "id": 2, "groupname": "React", "createdAt": "2017-12-05T09:36:10.000Z", "updatedAt": "2017-12-05T09:36:10.000Z", "contactgroups": [ { "id": 2, "contact": { "gsm": "66666" } }, { "id": 5, "contact": { "gsm": "54321" } }], "select": true }, { "id": 3, "groupname": "Vue", "createdAt": "2017-12-05T09:36:15.000Z", "updatedAt": "2017-12-05T09:36:15.000Z", "contactgroups": [ { "id": 6, "contact": { "gsm": "12345" } }] }, ], "sender": "ifelse", "message": "test" } var result=[ {"gsm": 12345, "sender": "ifelse", "message": "test"}, {"gsm": 54321, "sender": "ifelse", "message": "test"}, {"gsm": 99999, "sender": "ifelse", "message": "test"}, {"gsm": 66666, "sender": "ifelse", "message": "test"}, {"gsm": 54321, "sender": "ifelse", "message": "test"}, {"gsm": 12345, "sender": "ifelse", "message": "test"}, ] var arr=[]; for(var i=0;i<data.groups.length;i++){ if(data.groups[i].select){ for(var j=0;j<data.groups[i].contactgroups.length;j++){ arr.push({gsm:data.groups[i].contactgroups[j].contact.gsm,sender:data.sender,message:data.message}); } } } console.log(arr);
尝试lodash
var result = _.flatten(data.groups.map( r => r.contactgroups))
.map(r => ({ gsm: r.contact.gsm, sender: "ifelse", message: "test" })
);
console.log(result);
更新#2-带过滤器
var result = _.flatten(_.filter(data.groups,{'select': true }).map( r => r.contactgroups))
.map(r => ({ gsm: r.contact.gsm, sender: "ifelse", message: "test" })
);
console.log(result);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.