Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用For循环动态创建对象_Javascript_Node.js_Json_Loops - Fatal编程技术网

Javascript 使用For循环动态创建对象

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

我试图迭代(使用for..in循环)多个条目,并将它们作为json对象输出。我遇到的困难是数据只输出一个列表条目,而不是全部。在Node中使用AxiosJS,我发现它的输出格式与我想要的完全相同。我不确定如何格式化我的循环,以便像这样输出:

{
  "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查询?