如何将现有对象修改为新对象javascript

如何将现有对象修改为新对象javascript,javascript,arrays,object,Javascript,Arrays,Object,我想实现现有对象sampleobj,如预期输出所示。 我有键jan、feb、mar、apr和用逗号分隔的值, 应始终将第一个字符串作为开始,第二个字符串作为结束 “一月”:“07:30,23:00”//开始,结束 到 “一月开始”:“07:30”, “一月末”:“23:00” 预期产出: { month:{ "jan_begin": "07:30", "jan_end": "23:00", "feb_begin": "08:30", "feb_end": "23:

我想实现现有对象
sampleobj
,如预期输出所示。 我有键
jan、feb、mar、apr
和用逗号分隔的值, 应始终将第一个字符串作为
开始
,第二个字符串作为
结束

“一月”:“07:30,23:00”//开始,结束

“一月开始”:“07:30”, “一月末”:“23:00”

预期产出:

{
  month:{
   "jan_begin": "07:30",
   "jan_end": "23:00",  
   "feb_begin": "08:30",
   "feb_end": "23:00", 
   "mar_begin": "07:30",
   "mar_end": "22:00",    
   "apr": "",
  },
  fields: [
   {date: "30-12-2019", begin: "10:00", end: "24:00"},
   {date: "31-12-2019", begin: "11:00", end: "24:00"},
  ]
 }

您可以先检查该值,然后决定是否为空字符串,或者采用拆分的开始/结束值

var object={jan:“07:30,23:00”,feb:“08:30,23:00”,mar:“07:30,22:00”,apr:,“30-12-2019:“10:00,24:00”,“31-12-2019:“11:00,24:00”},
结果=对象
.条目(对象)
.减少((r[k,v])=>{
如果(v==''){
r、 月[k]='';
返回r;
}
var[begin,end]=v.split(',');
如果(k.length==3){
r、 月[k+'_begin']=开始;
r、 月[k+''U end']=结束;
}否则{
r、 push({date:k,begin,end});
}
返回r;
},{月份:{},字段:[]});
控制台日志(结果)
。作为控制台包装{最大高度:100%!重要;顶部:0;}
var sampleobj = {
  "jan": "07:30,23:00"
  "feb": "08:30,23:00"
  "mar": "07:30,22:00"
  "apr": ""
  "30-12-2019": "10:00,24:00",
  "31-12-2019": "11:00,24:00"
}
{
  month:{
   "jan_begin": "07:30",
   "jan_end": "23:00",  
   "feb_begin": "08:30",
   "feb_end": "23:00", 
   "mar_begin": "07:30",
   "mar_end": "22:00",    
   "apr": "",
  },
  fields: [
   {date: "30-12-2019", begin: "10:00", end: "24:00"},
   {date: "31-12-2019", begin: "11:00", end: "24:00"},
  ]
 }