最小値のアルゴリズムは次のとおりです:
- 配列の最初の要素を変数に代入し、その変数を最小値とします;
- 配列の走査を開始し、2番目の要素から順に最初の要素と比較します;
- 現在の要素が現在の最小値より小さい場合、現在の要素の値を最小値に代入します;
- 次の要素に移動し、手順3を続行します;
- 配列要素の走査が終了すると、この変数に格納されているのが最小値です;
コードは次のとおりです:
// 查找数组中最小值
function arrayMin(arrs){
var min = arrs[0];
for(var i = 1, ilen = arrs.length; i < ilen; i+=1) {
if(arrs[i] < min) {
min = arrs[i];
}
}
return min;
}
// 代码测试
var rets = [2,4,5,6,7,9,10,15];
console.log(arrayMin(rets));//2
上記は配列内の数値を比較したものです。配列内の数字が文字列の場合は、まず文字列を数値に変換してから比較する必要があります。文字列の比較は値ではなくASCIIコードで行われるためです。例えば、2のASCIIコードは15のASCIIコードより大きくなります。15のコードの最初の数字は1であり、2のASCIIコードは必ず1より大きいからです;
最大値を求めるアルゴリズムも上記と似ています:
- 配列の最初の要素を変数に代入し、その変数を最大値とします;
- 配列の走査を開始し、2番目の要素から順に最初の要素と比較します;
- 現在の要素が現在の最大値より大きい場合、現在の要素の値を最大値に代入します;
- 次の要素に移動し、手順3を続行します;
- 配列要素の走査が終了すると、この変数に格納されているのが最小値です;
コードは次のとおりです:
// 在数组中查找最大值
function arrayMax(arrs) {
var max = arrs[0];
for(var i = 1,ilen = arrs.length; i < ilen; i++) {
if(arrs[i] > max) {
max = arrs[i];
}
}
return max;
}
// 代码测试
var rets = [2,4,5,6,7,9,10,15];
console.log(arrayMax(rets));//15