在值下找到最大属性

时间:2018-11-23 20:06:00

标签: javascript lodash

我有一个对象列表,每个对象都有其属性。 我试图使用此.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”最高的那个。

1 个答案:

答案 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];