Я хотел бы узнать, как преобразовать вложенный объект в новый, переставив эту структуру:

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

Таким образом, он следует этой структуре:

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

Благодарность

0
Kevmon 28 Фев 2021 в 08:46

2 ответа

Лучший ответ

Прокрутите внутренние и внешние объекты в data с помощью Object.entries():

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries

const data = { centeredSlides: { 0: true, 1300: false }, somethingElse: { 0: false, 1500: 'aString' } };

let res = {}
for (const [key1, value1] of Object.entries(data)) {
  for (const [key2, value2] of Object.entries(value1)) {
    if (res[key2]) {
      res[key2][key1] = value2
    } else {
      res[key2] = {[key1]: value2}
    }
  }
}

console.log(res)
0
symlink 28 Фев 2021 в 06:25