我写了一个函数,它返回n个给定数组中数字的最大和最小差异。它似乎工作,但我想消除零作为最小差异。我也希望能够连接两个以上的数组,当输入超过两个时。最大和最小差异
function maxAndMin(arr1,arr2){
var maxi =0;
var mini =0;
var newarr = arr1.concat(arr2);
maxi = Math.max.apply(null,newarr)-Math.min.apply(null,newarr);
newarr = newarr.sort(function(a, b) {
return a - b; });
for (var i=0; i<newarr.length; i++){
if (newarr[i+1] - newarr[i] < mini)
mini = newarr[i+1] - newarr[i];
}
return [maxi, mini];
}
通常的答案是使'-Infinity'您最初的'maxi'和'Infinity'您最初的'mini',但将不会使用'sort'的逻辑工作。 –
为什么是循环?为什么这样? –
@ t.j.crowder maxi被重置... –