【发布时间】:2020-04-05 15:13:35
【问题描述】:
我需要使用权重值获取数组中下一个较低的对象。
const data = [
{ weight: 1, size: 2.5 },
{ weight: 2, size: 3.0 },
{ weight: 4, size: 3.5 },
{ weight: 10, size: 4.0 },
{ weight: 20, size: 5.0 },
{ weight: 30, size: 6.0 }
]
如果权重是19,我需要得到对象{ weight: 10, size: 4.0 }。
通过这种尝试,我确实得到了最接近的对象,但我总是需要获得具有下一个最低值的对象。如果 weight 小于 1,则应返回第一个元素。
const get_size = (data, to_find) =>
data.reduce(({weight}, {weight:w}) =>
Math.abs(to_find - w) < Math.abs(to_find - weight) ? {weight: w} : {weight}
)
【问题讨论】:
-
对象的权重是否像问题中那样按顺序排列?
-
@CertainPerformance 是的。
标签: javascript arrays object reduce