我有一个对象列表,每个对象都有其属性。 我试图使用此.find在此列表中找到一个特定的对象,尽管我不知道如何在某个值下找到其属性之一的最大值。
let x = this.state.pricing_adjustments_view.filter((e) => {
return e.location_id === this.state.selectedLocation,
e.car_model_id === this.state.selectedCar,
moment(e.calendar_day).isSame(this.state.from, "day"),
_.max(e.minimum_duration) <= duration
})
这是e.minimum_duration。我想找到最大的价值,但这就是“持续时间” 我正在尝试用“ lodash”,这里用“ _”表示。 我对其他可能性持开放态度。
this.state.pricing_adjustments_view是一个对象数组,您可以说,对于每个对象,“唯一”键是其“ location_id”,“ car_model_id”,“ calendar_day”和“ minimum_duration”。
因此,如果我们仅考虑“ location_id”,“ car_model_id”,“ calendar_day”,然后有不同的“ minimum_duration”,则存在多个相同的对象。我需要得到具有“ minimum_duration”最高的那个。
答案 0 :(得分:0)
好吧
您说的是minimum_duration
使您感兴趣。为了找到最大的(或最小的)。很简单,只需订购 pricing_adjustments_view
by minimum_duration
并取其最高价值即可。
因此,您基本上可以使用lodash
lib进行跟踪。
// sort dataa..
let sorted = _.sortBy(this.state.pricing_adjustments_view, 'minimum_duration');
// take last in list!
let has_highest_minimum_duration = sorted[sorted.length-1];