Включить индекс из объекта в массив - PullRequest
0 голосов
/ 13 февраля 2019

Пожалуйста, кто-нибудь направит меня в правильном направлении

У меня есть этот объект

myObject = {"Timer13":{"Arm":0,"Mode":0},"Timer14":{"Arm":1,"Mode":1}}

И мне нужно получить этот массив

[{"timer":"Timer13", "Arm":0,"Mode":0},{"timer":"Timer14","Arm":1,"Mode":1}]

Я пробовал несколько способов,я не понимаю;

это мой неполный результат с использованием карты

var result  = Object.keys(myObject).map((i) => myObject[i]);

, и я получаю

 [{"Arm":0,"Mode":0},{"Arm":1,"Mode":1}]

Ответы [ 3 ]

0 голосов
/ 13 февраля 2019

Возможно, попробуйте добавить ключ и добавить остальные элементы к объекту, прежде чем вернуться с карты.

var myObject = {"Timer13":{"Arm":0,"Mode":0},"Timer14":{"Arm":1,"Mode":1}}

var result = Object.keys(myObject).map(elem => {
    return {timer: elem, ...myObject[elem]}
})

console.log(result)
0 голосов
/ 13 февраля 2019

Вы можете получить записи и отобразить новые объекты, назначив детали.

var object = { Timer13: { Arm: 0, Mode: 0 }, Timer14: { Arm: 1, Mode: 1 } },
    array = Object
        .entries(object)
        .map(([timer, values]) => Object.assign({ timer }, values));

console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }
0 голосов
/ 13 февраля 2019

Вы можете использовать уменьшить , чтобы добиться того, чтобы игра с Текущим значением (curr) Аккумулятором (all), также уничтожающая ваш массив, может быть полезна для более чистого кода.[timer,obj] таймер: curr[0] и значение curr[1]

obj = {
  "Timer13": {
    "Arm": 0,
    "Mode": 0
  },
  "Timer14": {
    "Arm": 1,
    "Mode": 1
  }
}

const res = Object.entries(obj).reduce((all, [timer, obj]) => {
  all.push({
    timer,
    ...obj
  })
  return all;
}, [])


console.log(res)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...