JavaScript能在给定的数组内求近似数吗

a和b相除得到c,我想把这个c取近似数

但近似规则不是四舍五入,也不是取整数或保留小数,而是要在一个没什么规律的数组里

var factor = [1.5, 1.75, 2.0, 2.62, 2.75, 3.0, 3.5, 4, 5.24, 5.5, 6]

在数组里挑出与c最接近的数,把它赋值给c

我搜“round to array”得到的结果全都是“遍历求数组中每一个数的近似数”的,而没找到我需要的“以数组为作为近似数取值范围”的结果。请问这个功能如果有术语应该叫什么呀,存在相关的函数可以直接调用吗?

没有这样的函数. 只能自己写.

是这个意思吗?

let factor = [1.5, 1.75, 2.0, 2.62, 2.75, 3.0, 3.5, 4, 5.24, 5.5, 6],
    c = 2.3;

let closest = factor.reduce(function(prev, curr) {
    return (Math.abs(curr - c) < Math.abs(prev - c) ? curr : prev);
});

console.log(closest);

Output : 2

2 个赞

隔了一天我终于想出正确的关键词了

这个功能的约定俗成的说法并不叫做(我昨天所以为的)“以数组作为求近似数的取值范围

而应该叫做“从数组里查找最接近给定自变量的元素”

是的,感谢

第二天终于想到该查什么关键词了,于是上论坛来发一下。然后发现大神已经帮我写好了 :joy: