Как получить минимальное значение ключа от объекта объектов - PullRequest
0 голосов
/ 27 марта 2019

У меня есть данные, которые выглядят примерно так:

{
45: [
    {
    minPrice: 59,
    avgPrice: 123,
    maxPrice: 279
    }
],
34: [
    {
    minPrice: 99,
    avgPrice: 160,
    maxPrice: 320,
   }
]
}
}

Каков наилучший способ получить наименьшее значение minPrice из всех объектов с ключами, такими как 45 и 34. Это объект с несколькими ключами, и каждый ключ будет иметь массив объектов, и каждый объект в этом массиве будет иметь ключ minPrice.

Я попытался преобразовать его в массив с помощью Object.keys (), но это дает несколько вложенных массивов (что и ожидается). Это может быть решением, но есть ли лучший, более эффективный, чтобы получить minPrice? В приведенном выше примере результат должен быть 59.

1 Ответ

1 голос
/ 27 марта 2019

Вы в правильном направлении. Но вы должны использовать Objects.value () вместо Objects.key (), так как вы хотите сравнить значения вместо ключа!

Вот как можно получить минимальное значение ключа от объекта объектов.

После извлечения значений объекта вы должны использовать array.map () для создания массива minPrice, а затем использовать Math.Min и ES6 синтаксис спреда для возврата к самой низкой цене.

const obj = {
  45: [
      {
      minPrice: 59,
      avgPrice: 123,
      maxPrice: 279
      }
  ],
  34: [
      {
      minPrice: 99,
      avgPrice: 160,
      maxPrice: 320,
    }
  ]
}
const processedValues = Object.values(obj);
//console.log(values)
const minimumValue = Math.min(...processedValues.map(obj => obj[0]['minPrice']));
console.log(minimumValue)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...