Получение значений из объекта при неизвестных ключах

Есть json объект (элементов может быть больше):

[
  {
    '614303455': {
      id: '614303455',
      status: 'passed',
      duration: 2.11,
      retries: 0,
      title: null,
      suite: 'Позитивные'
    }
  },
  {
    '51435655': {
      id: '51435655',
      status: 'passed',
      duration: 1.22,
      retries: 0,
      title: null,
      suite: 'Позитивные'
    }
  }
]

Нужно достать все значения поля duration

Но из-за того что путь до duration выглядит так: obj.'51435655'.duration, у меня трудности именно с перебором 614303455/51435655, т.к. так могут быть любые цифры


Ответы (1 шт):

Автор решения: Regent

Обойтись без знания значений ключей 614303455/51435655 можно, например, с помощью метода Object.values()

В остальном же всё равно надо пройтись по "внешнему массиву" и по массивам values внутри, так что попроще (чем вариант в комментариях к вопросу) особо не выйдет

Можно сложить значения duration в массив и выводить на экран его. Это пригодится, если нужно как-то работать с duration дальше по коду

var data = [
  {
    '614303455': {
      id: '614303455',
      status: 'passed',
      duration: 2.11,
      retries: 0,
      title: null,
      suite: 'Позитивные'
    }
  },
  {
    '51435655': {
      id: '51435655',
      status: 'passed',
      duration: 1.22,
      retries: 0,
      title: null,
      suite: 'Позитивные'
    }
  }
];

var durations = data.flatMap(obj => Object.values(obj))
                    .map(value => value.duration);
console.log(durations);

→ Ссылка