比较数组中的值并使用javascript获取最接近的值

比较数组中的值并使用javascript获取最接近的值,javascript,arrays,compare,Javascript,Arrays,Compare,我有一个数组 [4, 9, 12, 18, 29] 我想比较所有的值,并决定哪些值彼此最接近。就像在这种情况下,它将是9和12。 如果有人能告诉我怎么做,这将非常有帮助。对数组中的所有值进行排序。然后在while循环中,我们可以在相邻值之间求差。差最小的一对将是ans。 arr = arr.sort(function(a, b){return a-b}); var i,j; var first,second; var min_diff = arr[1] - arr[0]; for (i = 2

我有一个数组

[4, 9, 12, 18, 29]
我想比较所有的值,并决定哪些值彼此最接近。就像在这种情况下,它将是9和12。
如果有人能告诉我怎么做,这将非常有帮助。

对数组中的所有值进行排序。然后在while循环中,我们可以在相邻值之间求差。差最小的一对将是ans。
arr = arr.sort(function(a, b){return a-b});
var i,j;
var first,second;
var min_diff = arr[1] - arr[0];
for (i = 2 ; i != arr.length ; i++) {
    min_diff = Math.min(min_diff, arr[i]-arr[i-1]);
}

for(i=0; i<arr.length; i++){
    for(j=1; j<arr.length; j++){
        temp = arr[j] - arr[i];
        if(temp == min_diff){
            first = arr[i];  // first element
            second = arr[j]; // second element
        }
    }
}