gpt4 book ai didi

javascript - 在数组中查找具有下一个较低值的对象

转载 作者:行者123 更新时间:2023-11-30 09:10:44 25 4
gpt4 key购买 nike

我需要使用权重值获取数组中下一个较低的对象。

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 }

通过这次尝试,我确实获得了最近的对象,但我总是需要获得具有下一个最低值的对象。如果权重小于 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}
)

最佳答案

如果对象的权重是有序的,就像在问题中一样,一种选择是从数组的末尾开始迭代。第一个匹配的对象将是您想要的。

如果下面的 .find 没有返回任何内容,则替换为 || data[0] 获取数组中的第一项:

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 }
]

const output = data.reverse().find(({ weight }) => weight < 19) || data[0];
console.log(output);

(如果你不想改变data,你可以先.slice)

关于javascript - 在数组中查找具有下一个较低值的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59301021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com