Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.02.2016, 15:48
Новичок на форуме
Отправить личное сообщение для tvv90 Посмотреть профиль Найти все сообщения от tvv90
 
Регистрация: 08.11.2015
Сообщений: 6

Работа с массивами, help!
Функция, которая принимает массив числовых значений, вычисляет и возвращает самый большой элемент массива после максимального. На пример, для массива [1, 2, 3, 4, 5, 5] это будет 4.
Ответить с цитированием
  #2 (permalink)  
Старый 01.02.2016, 16:01
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Math.max и array.splice в помощь
Ответить с цитированием
  #3 (permalink)  
Старый 01.02.2016, 16:01
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 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.
Ответить с цитированием
  #4 (permalink)  
Старый 01.02.2016, 16:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

мне интересно почему 4 когда нет элемента после максимального в этом массиве [1, 2, 3, 4, 5, 5]пусто тут
Ответить с цитированием
  #5 (permalink)  
Старый 01.02.2016, 16:19
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Сообщение от рони Посмотреть сообщение
мне интересно почему 4 когда нет элемента после максимального в этом массиве [1, 2, 3, 4, 5, 5]пусто тут
Имелось ввиду второй по максимальности (уникальный)
Ответить с цитированием
  #6 (permalink)  
Старый 01.02.2016, 16:24
Новичок на форуме
Отправить личное сообщение для tvv90 Посмотреть профиль Найти все сообщения от tvv90
 
Регистрация: 08.11.2015
Сообщений: 6

Имеется ввиду, из чисел ну например [1, 1, 5, 5] большее после максимального будет 1. Или среди [-1, -2, -5, -25, -125] большим после максимального будет -2
Ответить с цитированием
  #7 (permalink)  
Старый 01.02.2016, 16:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

destus,
ok
Ответить с цитированием
  #8 (permalink)  
Старый 01.02.2016, 16:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

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.
Ответить с цитированием
  #9 (permalink)  
Старый 01.02.2016, 17:02
Новичок на форуме
Отправить личное сообщение для tvv90 Посмотреть профиль Найти все сообщения от tvv90
 
Регистрация: 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
Отлично. Респект тебе дружище! Все работает
Ответить с цитированием
  #10 (permalink)  
Старый 01.02.2016, 17:03
Новичок на форуме
Отправить личное сообщение для tvv90 Посмотреть профиль Найти все сообщения от tvv90
 
Регистрация: 08.11.2015
Сообщений: 6

Всем остальным также thanks!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с массивами BorisBritva jQuery 6 23.02.2014 18:31
слияние массива с вложенными массивами с еще одним с вложенными массивами syegorius Events/DOM/Window 2 15.02.2012 01:15
Постоянная работа / Front-end / Москва kooper Работа 4 29.09.2011 22:06
Работа с массивами. Требуется помощь. Кристи Общие вопросы Javascript 3 08.02.2011 18:00
работа с массивами one-two Работа 11 31.01.2011 16:30