Алгоритм поиска минимального значения выглядит следующим образом:
- Присвойте первый элемент массива переменной и используйте эту переменную в качестве минимального значения;
- Начните обход массива, сравнивая каждый элемент, начиная со второго, с первым элементом;
- Если текущий элемент меньше текущего минимума, присвойте значение текущего элемента минимуму;
- Перейдите к следующему элементу и продолжите с третьего шага;
- Когда все элементы массива будут пройдены, значение, хранящееся в этой переменной, будет минимальным значением;
Код выглядит следующим образом:
// 查找数组中最小值
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-кодах. Например, ASCII-код '2' больше ASCII-кода '15', потому что первая цифра ASCII-кода для 15 — это 1, а ASCII-код 2 определённо больше 1;
Алгоритм поиска максимального значения аналогичен приведённому выше:
- Присвойте первый элемент массива переменной и используйте эту переменную в качестве максимального значения;
- Начните обход массива, сравнивая каждый элемент, начиная со второго, с первым элементом;
- Если текущий элемент больше текущего максимума, присвойте значение текущего элемента максимуму;
- Перейдите к следующему элементу и продолжите с третьего шага;
- Когда все элементы массива будут пройдены, значение, хранящееся в этой переменной, будет минимальным значением;
Код выглядит следующим образом:
// 在数组中查找最大值
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