Find the number in an array that is closest to a given number

后端 未结 7 759
温柔的废话
温柔的废话 2021-01-03 23:07

I have an Array of integers in javascript, [5,10,15,20,25,30,35] when given a number x, how can I find the element in the array that is closest to that number?

7条回答
  •  一个人的身影
    2021-01-03 23:23

    I created my own function since i could not find any that meets my requeriments.

        function closest_number(quantities, number, closest_factor)
        {
            if (closest_factor == 'ceil')
            {
                quantities.sort(function(a, b)
                    {
                        return a - b
                    }
                );
    
                for (var i = 0; i < quantities.length; i++)
                {
                    if (quantities[i] >= number)
                    {
                        return quantities[i];
                    }
    
                    last_value = quantities[i];
                }
    
                return last_value;
            }
            else if (closest_factor == 'floor')
            {
                quantities.sort(function(a, b)
                    {
                        return a - b
                    }
                );
    
                min_value = quantities[0];
    
                for (var i = 0; i < quantities.length; i++)
                {
                    if (number == quantities[i])
                    {
                        return number;
                    }
                    else if (quantities[i] < number)
                    {
                        min_value = quantities[i];
                    }
                    else if(quantities[i] > number)
                    {
                        return min_value;
                    }           
                }
    
                return min_value;
            }
            else
            {
                return false;
            }
        };
    

提交回复
热议问题