这是我的 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"},
]
然后只有我可以在 sequelize 中批量插入。
如何使用 for 或 foreach 或任何其他函数来做到这一点?做这些事?
foreach 更好吗?可以用 map 做吗?
我想要我的最终 json 对象,然后只允许批量创建 sequelize。
Ps: 我想要“select”: true json gsm numbers only
最佳答案
在你的例子中,我使用 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);
关于javascript - 在 mysql Sequelize + Nodejs 中将数组和对象转换为批量插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47688682/