javascript - 如何使用 jQuery 从 javascript 数组中获取最接近的元素?

标签 javascript jquery arrays

我有一个像这样的 JavaScript 数组

var array1= [10,20,30,40,50];

有没有什么方法可以让我获得最接近给定数字的数组元素?例如:如果我通过 26,它应该返回 30(26 最接近 30)。如果我通过了 42,它应该返回 40。

有什么想法吗?我应该迭代每个元素吗? jQuery 中有可用的方法吗?

最佳答案

使用 for 循环很简单。不需要 jQuery 魔法:

function getClosestNum(num, ar)
{
    var i = 0, closest, closestDiff, currentDiff;
    if(ar.length)
    {
        closest = ar[0];
        for(i;i<ar.length;i++)
        {           
            closestDiff = Math.abs(num - closest);
            currentDiff = Math.abs(num - ar[i]);
            if(currentDiff < closestDiff)
            {
                closest = ar[i];
            }
            closestDiff = null;
            currentDiff = null;
        }
        //returns first element that is closest to number
        return closest;
    }
    //no length
    return false;
}

关于javascript - 如何使用 jQuery 从 javascript 数组中获取最接近的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6551687/

相关文章:

actionscript-3 - AS3 - 压缩 ByteArray

javascript - 我想在单击复选框时传递一个 id 参数

javascript - 为什么我的自定义滚动条不显示在浏览器中?

javascript - 如何使用 DOM 更改 HTML 表格第一行中的按钮? (通过 DOM 添加和删除行)

PHP array_merge() 仅优先使用第一个数组和唯一值?

arrays - 算法 - LinkedIn Coding Round

javascript - 使用预填充的表单,仅提交更改的字段

php - ajax请求未定义

javascript - 在 JSON 数组上设置结果值

javascript - 使用 jquery 从表中删除动态添加的行