我有一些看起来像这样的数据:
{
45: [
{
minPrice: 59,
avgPrice: 123,
maxPrice: 279
}
],
34: [
{
minPrice: 99,
avgPrice: 160,
maxPrice: 320,
}
]
}
}
获得带有键(例如45和34)的所有对象的最低minPrice值的最佳方法是什么。它是一个具有多个键的对象,每个键将具有一个对象数组,并且该数组中的每个对象将具有一个对象数组。 minPrice键。
我尝试使用Object.keys()将其转换为数组,但这提供了多个嵌套数组(这是预期的)。那可能是一个解决方案,但是有没有更好的效率来获得minPrice?在上面的示例中,结果应为59。
答案 0 :(得分:1)
您的方向正确。但是您应该使用Objects.value()而不是Objects.key(),因为您要比较值而不是键!
这是从对象对象中获取键的最小值的方法。
提取对象的值之后,应该可以使用array.map()创建一个minPrice数组,然后使用Math.Min和ES6的spread syntax返回最低价格。
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)