Javascript 如何反转对象的嵌套对象

Javascript 如何反转对象的嵌套对象,javascript,object,Javascript,Object,我想学习如何通过重新排列此结构将嵌套对象转换为新对象: data = { centeredSlides: { 0: true, 1300: false }, somethingElse: { 0: false, 1500: 'aString' } } newData = { 0: { centeredSlides: true, somethingEl

我想学习如何通过重新排列此结构将嵌套对象转换为新对象:

data = 
  { 
    centeredSlides: { 
      0: true, 
      1300: false 
    }, 
    somethingElse: { 
      0: false, 
      1500: 'aString' 
    } 
  }
newData = 
  {
    0: {
      centeredSlides: true,
      somethingElse: false
    },
    1300: {
      centeredSlides: false
    },
    1500: {
      somethingElse: 'aString'
    }
  }
所以它遵循这个结构:

data = 
  { 
    centeredSlides: { 
      0: true, 
      1300: false 
    }, 
    somethingElse: { 
      0: false, 
      1500: 'aString' 
    } 
  }
newData = 
  {
    0: {
      centeredSlides: true,
      somethingElse: false
    },
    1300: {
      centeredSlides: false
    },
    1500: {
      somethingElse: 'aString'
    }
  }
谢谢

您可以获取对象的属性,并使用它从
[[key,value],…]条目数组构建新对象。对于每个
[key,value]
,您可以迭代嵌套对象的条目,并使用其中的键作为累积/新对象的外键:

const data={centeredSlides:{0:true,1300:false},somethingElse:{0:false,1500:aString'};
const res=Object.entries(data).reduce((acc,[innerKey,obj])=>{
Object.entries(obj.forEach)([outerKey,val])=>{
acc[outerKey]=acc[outerKey]| |{};//获取已存储在“outerKey”中的对象或创建一个新对象。
acc[outerKey][innerKey]=val;
})
返回acc;
}, {});
控制台日志(res)您可以获取对象的属性,并使用从
[[key,value],…]条目数组构建新对象。对于每个
[key,value]
,您可以迭代嵌套对象的条目,并使用其中的键作为累积/新对象的外键:

const data={centeredSlides:{0:true,1300:false},somethingElse:{0:false,1500:aString'};
const res=Object.entries(data).reduce((acc,[innerKey,obj])=>{
Object.entries(obj.forEach)([outerKey,val])=>{
acc[outerKey]=acc[outerKey]| |{};//获取已存储在“outerKey”中的对象或创建一个新对象。
acc[outerKey][innerKey]=val;
})
返回acc;
}, {});

控制台日志(res)使用
Object.entries()循环通过
数据中的内部和外部对象

const data={centeredSlides:{0:true,1300:false},somethingElse:{0:false,1500:aString'};
设res={}
for(对象项(数据)的常量[key1,value1]{
for(Object.entries(value1))的常量[key2,value2]{
if(res[key2]){
res[key2][key1]=value2
}否则{
res[key2]={[key1]:value2}
}
}
}

console.log(res)
使用
Object.entries()循环通过
数据中的内部和外部对象

const data={centeredSlides:{0:true,1300:false},somethingElse:{0:false,1500:aString'};
设res={}
for(对象项(数据)的常量[key1,value1]{
for(Object.entries(value1))的常量[key2,value2]{
if(res[key2]){
res[key2][key1]=value2
}否则{
res[key2]={[key1]:value2}
}
}
}
console.log(res)