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)