Javascript 使用For循环动态创建对象
我试图迭代(使用for..in循环)多个条目,并将它们作为json对象输出。我遇到的困难是数据只输出一个列表条目,而不是全部。在Node中使用AxiosJS,我发现它的输出格式与我想要的完全相同。我不确定如何格式化我的循环,以便像这样输出:Javascript 使用For循环动态创建对象,javascript,node.js,json,loops,Javascript,Node.js,Json,Loops,我试图迭代(使用for..in循环)多个条目,并将它们作为json对象输出。我遇到的困难是数据只输出一个列表条目,而不是全部。在Node中使用AxiosJS,我发现它的输出格式与我想要的完全相同。我不确定如何格式化我的循环,以便像这样输出: { "Cardio_ETC": { "name": "John", "shift": "7a-7a", "service
{
"Cardio_ETC": {
"name": "John",
"shift": "7a-7a",
"service": "ETC Cardiology",
"Office": "1234",
"cell": ""
},
"Cardio_STEMI": {
"name": "Pran",
"shift": "7a-7a",
"service": "STEMI Cardiology",
"Office": "34561321",
"cell": ""
},
"fastTrack1": {
"name": "Bob",
"shift": "7a-7p",
"service": "Fasttrack",
"Office": "X533 tel",
"cell": "X533"
},...etc
这是我目前的代码:
.then((data)=>{
connection.query("SELECT * FROM amion_onCall", function (err, result, fields){
//format results here
var fixed = new Object();
let i;
for (i in result){
aName = result[i].name;
serv = result[i].specialty;
aServ = serv.replace(' ','_');
aShift = result[i].shift;
aOff = result[i].office;
aCell = result[i].cell;
aTag = result[i].tag;
var data = {name:aName, service: aServ, shift: aShift, office: aOff, cell: aCell, tag: aTag};
Object.assign(fixed, data);
console.log(fixed);
为..in循环格式化此文件的最佳方式是什么,以便输出上述json?在您的情况下,如果要使用for in,可以这样做
constobj={};
对于(结果中的我){
obj[结果[i].标记]={
名称:结果[i]。名称,
服务:结果[i].专业.replace('''.'.'''.'替换,'''.'替换''.',
班次:结果[i]。班次,
办公室:结果[i]。办公室,
单元格:结果[i]。单元格,
}
}
console.log(obj)//将有您的答案
但我建议使用reduce
。然后((数据)=>{
connection.query(“从amion\u onCall中选择*”,
函数(错误、结果){
const obj=结果减少((o,项)=>{
o[item.tag]={
名称:item.name,
服务:项目.专业.更换(''''.''.''''.'),
班次:item.shift,
办公室:item.office,
单元格:item.cell,
}
返回o
}, {});
控制台日志(obj)
})
})
如果可以的话,请更新我的问题,我没有足够的声誉来更新你的答案(我是新来的)!我什么都不懂。您希望从哪个来源获得什么结果?为什么要向这个问题添加SQL查询?