将数组重新构造为对象Javascript/Nodejs中的对象列表

将数组重新构造为对象Javascript/Nodejs中的对象列表,javascript,node.js,arrays,object,Javascript,Node.js,Arrays,Object,我想要的输出在这篇文章的底部,我想删除数组并在对象中放置一个对象列表 我正在分享我的map函数,因为我希望里面有一个方法可以得到我想要的输入,而我只是做得不正确 如果我所做的没有意义,我希望有更好的方法来处理这些数据 起始数据(./updatepayloadTEMP.json) 变数 let UpdatedTaskOutput = fs.readFileSync('./updatepayloadTEMP.json'); let Updatedtaskoutputjson = JSON.pa

我想要的输出在这篇文章的底部,我想删除数组并在对象中放置一个对象列表

我正在分享我的map函数,因为我希望里面有一个方法可以得到我想要的输入,而我只是做得不正确

如果我所做的没有意义,我希望有更好的方法来处理这些数据

起始数据(./updatepayloadTEMP.json)

变数

 let UpdatedTaskOutput = fs.readFileSync('./updatepayloadTEMP.json'); 
 let Updatedtaskoutputjson = JSON.parse(UpdatedTaskOutput); 
 var dynamictaskdetails = Updatedtaskoutputjson.outputparameters;
映射函数

   var taskparamscompiled = dynamictaskdetails.map(function (elem) {
   taskname = tasknamefromworkflowdef + elem.name;
   taskparms = taskparamsobj;
   return {
    [taskname]: taskparms,
   };
  });
我当前为taskparamscompiled获得的内容

 [
 {
   process0000x0000: {
    tr: 16,
    tc: 16,
    ofr: 16,
    ofc: 16,
    outfile: '"D:\\Code\\Process\\1"',
   },
  },
{
 process0000x0001: {
   tr: 16,
   tc: 16,
   ofr: 16,
   ofc: 16,
   outfile: '"D:\\Code\\Process\\1"',
  },
},
{
 process0000x0002: {
   tr: 16,
   tc: 16,
   ofr: 16,
   ofc: 16,
   outfile: '"D:\\Code\\Process\\1"',
 },
},
];
我想要什么

 {
   "process0000x0000": {
   "tr": 16,
   "tc": 16,
   "ofr": 16,
   "ofc": 16,
   "outfile": '"D:\\Code\\Process\\1"'
 },

    "process0000x0001": {
   "tr": 16,
   "tc": 16,
   "ofr": 16,
   "ofc": 16,
   "outfile": '"D:\\Code\\Process\\1"'
 },
 "process0000x0002": {
   "tr": 16,
   "tc": 16,
   "ofr": 16,
   "ofc": 16,
   "outfile": '"D:\\Code\\Process\\1"'
 },
}
我错过了一些东西,更新: 我现在需要将文件路径
(“文件路径”:“D:\\code\\ImageTiling\\6\\0000x0000.png”)
像这样放入进程对象中

process0000x0000: {
   filepath: "D:\\Code\\ImageTiling\\6\\0000x0000.png" 
    tr: 16,
    tc: 16,
    ofr: 16,
    ofc: 16,
    outfile: '"D:\\Code\\Process\\1"',
   }
Array.prototype.map()将返回一个数组。您可能想使用
Array.prototype.reduce()

我想这会给你你想要的输出

const dynamictaskdetails = [
  {
    name: '0000x0000',
    filepath: 'D:\\Code\\ImageTiling\\6\\0000x0000.png'
  },
  {
    name: '0000x0001',
    filepath: 'D:\\Code\\ImageTiling\\6\\0000x0001.png'
  },
  {
    name: '0000x0002',
    filepath: 'D:\\Code\\ImageTiling\\6\\0000x0002.png'
  }
];

const taskparamsobj = {
  tr: 16,
  tc: 16,
  ofr: 16,
  ofc: 16,
  outfile: 'D:\\Code\\Process\\1'
};

const taskparamscompiled = dynamictaskdetails.reduce((accumulator, elem) => {
  const taskname = 'process' + elem.name;
  return {
    ...accumulator,
    [taskname]: taskparamsobj,
  };
}, {});

console.log(taskparamscompiled);
这导致了以下输出:

{
  process0000x0000: { tr: 16, tc: 16, ofr: 16, ofc: 16, outfile: 'D:\\Code\\Process\\1' },
  process0000x0001: { tr: 16, tc: 16, ofr: 16, ofc: 16, outfile: 'D:\\Code\\Process\\1' },
  process0000x0002: { tr: 16, tc: 16, ofr: 16, ofc: 16, outfile: 'D:\\Code\\Process\\1' }
}

非常感谢,我有一种感觉,我没有使用Array.prototype.map(),如果我应该在这里回答或询问,但是,如果我想将文件路径从./updatepayloadTEMP.json添加到具有其他属性的子对象,该怎么办?最后,我用我的当前状态发布了另一篇帖子@乔什·波斯皮西尔
{
  process0000x0000: { tr: 16, tc: 16, ofr: 16, ofc: 16, outfile: 'D:\\Code\\Process\\1' },
  process0000x0001: { tr: 16, tc: 16, ofr: 16, ofc: 16, outfile: 'D:\\Code\\Process\\1' },
  process0000x0002: { tr: 16, tc: 16, ofr: 16, ofc: 16, outfile: 'D:\\Code\\Process\\1' }
}