与えられたn個の配列の最大と最小の差を返す関数を書いています。それは動作するようですが、私は最小限の違いとしてゼロを削除したい。私はまた、2つ以上の配列を連結することができるようにしたい。最大と最小の差
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];
}
はいつもの答えはあなたの最初の 'mini'をInfinity'' '作るあなたの最初の' maxi'を-Infinity'とするだろうが、それあなたのロジックでは 'sort'を使って動作しません。 –
なぜループですか?なぜソート? –
@ t.j.crowder maxiがリセットされています... –