01.02.2016, 15:48
|
Новичок на форуме
|
|
Регистрация: 08.11.2015
Сообщений: 6
|
|
Работа с массивами, help!
Функция, которая принимает массив числовых значений, вычисляет и возвращает самый большой элемент массива после максимального. На пример, для массива [1, 2, 3, 4, 5, 5] это будет 4.
|
|
01.02.2016, 16:01
|
|
Профессор
|
|
Регистрация: 18.05.2011
Сообщений: 1,207
|
|
Math.max и array.splice в помощь
|
|
01.02.2016, 16:01
|
Профессор
|
|
Регистрация: 12.12.2012
Сообщений: 1,398
|
|
alert([1, 2, 3, 4, 5, 5].reduce(function (result, item) {
if (item > result.max) {
result.last = result.max;
result.max = item;
}
return result;
}, {max: 0, last: 0}).last);
Последний раз редактировалось tsigel, 01.02.2016 в 16:08.
|
|
01.02.2016, 16:15
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
мне интересно почему 4 когда нет элемента после максимального в этом массиве [1, 2, 3, 4, 5, 5] пусто тут
|
|
01.02.2016, 16:19
|
|
Профессор
|
|
Регистрация: 18.05.2011
Сообщений: 1,207
|
|
|
|
01.02.2016, 16:24
|
Новичок на форуме
|
|
Регистрация: 08.11.2015
Сообщений: 6
|
|
Имеется ввиду, из чисел ну например [1, 1, 5, 5] большее после максимального будет 1. Или среди [-1, -2, -5, -25, -125] большим после максимального будет -2
|
|
01.02.2016, 16:26
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
destus,
ok
|
|
01.02.2016, 16:53
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
tvv90,
function fn(a) {
a = a.slice().sort(function(a, b) {
return a - b
});
return a[a.indexOf(Math.max.apply(null, a))-1]
};
alert( fn([-1, -2, -5, -25, -125]) ); //-2
alert( fn([1, 1, 5, 5]) ); //1
alert( fn([1, 2, 3, 4, 5, 5]) ); //4
Последний раз редактировалось рони, 01.02.2016 в 16:56.
|
|
01.02.2016, 17:02
|
Новичок на форуме
|
|
Регистрация: 08.11.2015
Сообщений: 6
|
|
Сообщение от рони
|
tvv90,
function fn(a) {
a = a.slice().sort(function(a, b) {
return a - b
});
return a[a.indexOf(Math.max.apply(null, a))-1]
};
alert( fn([-1, -2, -5, -25, -125]) ); //-2
alert( fn([1, 1, 5, 5]) ); //1
alert( fn([1, 2, 3, 4, 5, 5]) ); //4
|
Отлично. Респект тебе дружище! Все работает
|
|
01.02.2016, 17:03
|
Новичок на форуме
|
|
Регистрация: 08.11.2015
Сообщений: 6
|
|
Всем остальным также thanks!
|
|
|
|