【发布时间】:2021-05-29 01:36:19
【问题描述】:
我有一个对象数组。在每个对象中都有一个包含多个对象的详细信息属性(数组)——在这个例子中我只展示了一个。
我正在寻找每个细节中的 rating 属性并寻找最小值(在本例中为 3.1)...是否有更简单/更清洁的方法来实现这一点?
const ratings = [{ id: 'ABC', details: [{ type: 'VALUE', rating: 9.5 }] }, { id: 'DEF', details: [{ type: 'VALUE', rating: 3.1 }] }, { id: 'GHI', details: [{ type: 'VALUE', rating: 4.5 }] }]
const ids = ['ABC', 'DEF', 'GHI']
const array = []
ids.forEach(element => {
const valueScore = ratings?.find(r => r.id === element)?.details?.find(c => c.type === 'VALUE')
if (valueScore.rating) {
array.push(valueScore.rating)
}
})
console.log('MIN VALUE', Math.min(...array))
【问题讨论】:
-
与其遍历 ids 然后使用
find为什么不只遍历一次ratings,如果您的代码有效并且您需要反馈/建议,您可能需要查看代码审查SE网站
标签: javascript arrays object ecmascript-6