Javascript 如何将数据转换为这种结构

Javascript 如何将数据转换为这种结构,javascript,arrays,object,data-structures,data-conversion,Javascript,Arrays,Object,Data Structures,Data Conversion,如何将数组oArr转换为如下示例所示的结果 例如: 输入: let oArr = [ { '1': Object, 'range': [0, 778] }, { '2': Object, 'range': [0, 778] }, { '1': Object, 'range': [779, 1500] }, { '3': Objcet, 'range': [779, 1500]

如何将数组oArr转换为如下示例所示的结果

例如:

输入:

let oArr = [
   {
      '1': Object,
      'range': [0, 778]
   }, {
      '2': Object,
      'range': [0, 778]
   }, {
      '1': Object,
      'range': [779, 1500]
   }, {
      '3': Objcet,
      'range': [779, 1500]
   }
]
输出:

result = [
    {
      'range': [0, 778],
      '1': Object,
      '2': Object
    },  {
      'range': [779, 1500],
      '1': Object,
      '3': Object
    }
]
在数组的每个元素上使用reducer函数将它们按范围值分组,并通过迭代除范围之外的所有属性来设置结果的另一个键

桨=[ { “1”:“对象”, “范围”:[0778] }, { “2”:“对象”, “范围”:[0778] }, { “1”:“对象”, “范围”:[7791500] }, { “3”:“对象”, “范围”:[7791500] } ]; var result=Object.valuessarer.reducec,obj=>{ c[obj.range]=c[obj.range]| |{'range':obj.range}; 对于Object.entriesobj{ ifkey=='range'继续; c[对象范围][键]=值; } 返回c; }, {}; console.logresult 让oArr=[ { '1':{Object:'object1'}, “范围”:[0778] }, { '2':{Object:'object2'}, “范围”:[0778] }, { '1':{Object:'object3'}, “范围”:[7791500] }, { '3':{Object:'object4'}, “范围”:[7791500] } ]; 设res=[]; oArr.forEach obj=>{ 设index=res.indexOf res.findresObj=>resObj.range[0]==obj.range[0]&&resObj.range[1]==obj.range[1]; console.logindex; 让key=Object.keysobj.findkey=>key!='range'; index==-1?res.push对象:res[index][key]=obj[key]; };
console.logres;规则是什么?你们按范围联合收割机吗?是否存在重叠范围,例如[0,10]和[5,15],或者它们始终是相同的还是不同的?您好Hughie,请告诉我们您尝试了什么方法?您是否在javascript中遇到一些语法或方法的问题。是的,只需按范围合并,并且没有重叠的范围,在按顺序进行转换之前,范围属性是固定的,如[0,100]、[101,200]、[201,300]。。。。