gpt4 book ai didi

javascript - 在 javascript 中映射和匹配范围

转载 作者:行者123 更新时间:2023-11-29 22:21:18 31 4
gpt4 key购买 nike

在 JavaScript 中使用数组映射范围最有效的是什么?

我有这个:

var def = [70,200,1000];

还有一组可能的数字,比如说:

var n = [23,45,74,120,240,800,1204,2000];

现在,如何从 n 中提取与 def 中的值匹配的最接近值?

在上面的例子中,我会得到 [74,240,800]。我希望我说清楚...

最佳答案

这是一个尝试。迭代 defn 一次:

var nIndex = 0,
nlen = n.length,
prev,
next;

for(var i = 0, ilen = def.length; i < ilen && nIndex < nlen; i++) {
var current = def[i];

while (n[nIndex] < current && nIndex < nlen - 1) nIndex++;

next = n[nIndex];
prev = nIndex == 0 ? next : n[nIndex - 1];

result[i] = current - prev < next - current ? prev : next;
}
// values in def are larger than the greatest value in n
while (result.length < def.length) result.push(n[nlen-1]);

fiddle

关于javascript - 在 javascript 中映射和匹配范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12288590/

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