gpt4 book ai didi

javascript - 如何从一组特定数字中找到最接近的较大数字:javascript

转载 作者:行者123 更新时间:2023-12-02 14:55:34 25 4
gpt4 key购买 nike

我有一组数字,我的要求是找到与特定变量相同或最接近的更高数字数字的集合/对象

var person = {
A:107,
B:112,
C:117,
D:127,
E:132,
F:140,
G:117,
H:127,
I:132,
J:132,
K:140,
L:147,
M:117,
N:127,
O:132
};

我需要找到一个最接近可用 x 的较大数字
例如1-如果

x = 116;

那么数字集中最接近 x 的较高数字是 117,它在 C、G、M 处重复所以我需要用 javascript 以编程方式找出 C、G、M

eg2-

x= 127

然后与数字集中的 x 相同的数字在 D、H、N 处重复所以我需要用 javascript 以编程方式找出 D,H,N

感谢您的帮助

最佳答案

您可以使用reduce来找到最小的差异并收集具有该值的键。如果发现较低的差异,则将键数组替换为新的较低键组,例如

function getNextHighest(obj, value) {
var diff = Infinity;
return Object.keys(obj).reduce(function(acc, key) {
var d = obj[key] - value;
if (d > 0 && d < diff) {
diff = d;
acc = [key];
} else if (d == diff) {
acc.push(key)
}
return acc;
}, [])
}

var person = {A:107,B:112,C:117,D:127,E:132,F:140,G:117,
H:127,I:132,J:132,K:140,L:147,M:117,N:127,O:132
};

document.write(getNextHighest(person, 116));
document.write('<br>' + getNextHighest(person, 140));

关于javascript - 如何从一组特定数字中找到最接近的较大数字:javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35837589/

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