Size: a a a

2019 December 08

DE

Denis Evlampiev in JS
Ваня Реутенко
имей ввиду, сортировка слишком дорогая, если мало елементов, то ок, но если много, то нужно проходится по массиву только раз попутно присваивая минимальные значения
Согласен. Но пока не возникнет реальных проблем с производительностью об этом можно не думать и писать так как удобнее.
источник

TP

Taras Postolyuk in JS
Ваня Реутенко
через пять минут буду у компа и скину два решения, если нужно
tak gde oshibka?
источник

DE

Denis Evlampiev in JS
Taras Postolyuk
function highAndLow(numbers){
let arr = numbers.split('').map(Number);
let min = Math.min(...arr),
    max = Math.max(...arr);
    return max, min;
}

highAndLow(‘1,2,3,4’);
.split('')   →  split(',')
return max, min;  →  return [max, min];
источник

TP

Taras Postolyuk in JS
Я ето исправил спасибо
источник

TP

Taras Postolyuk in JS
Но все равно выкидывает НАН
источник

ВР

Ваня Реутенко... in JS
источник

ВР

Ваня Реутенко... in JS
источник

ВР

Ваня Реутенко... in JS
filter - лишний в последнем
источник

D

Drake in JS
Самое простое - пройти по массиву и запоминать два самых маленьких числа
источник

D

Drake in JS
И не будет проблем с производительностью на любом размере и написать функцию как нечего делать
источник

ВР

Ваня Реутенко... in JS
с нулями не работает
источник

D

Drake in JS
Можно даже reduce использовать
источник

ВР

Ваня Реутенко... in JS
там любая фигня подойдет, хоть forEach()
источник

D

Drake in JS
Ну, тут уже вопрос в читабельности и практиках чистого кода
источник

D

Drake in JS
reduce и forEach будут быстрее работать, чем писать свой цикл
источник

D

Drake in JS
А, на сколько я знаю, reduce больше подойдет т.к. не нужны внешние переменные и получается логично - массив уменьшается до его двух наименьших значений
источник

D

Drake in JS
Если проверка на 0 и -0 не нужна, то вот:
const [first, second] = arr.reduce((acc, curr) => {
 if (curr < acc[0]) return [curr, acc[0]];
 if (curr < acc[1]) return [acc[0], curr];
 return acc;
}, [Infinity, Infinity]);
источник

ВР

Ваня Реутенко... in JS
у нас и так функция отвечает только за получение min, max, редьюс, я думаю, оверхед
источник

D

Drake in JS
Ну да, если нужно самое большое и самое маленькое - тут нет смысла в reduce-е
источник
2019 December 09

ВР

Ваня Реутенко... in JS
Drake
Если проверка на 0 и -0 не нужна, то вот:
const [first, second] = arr.reduce((acc, curr) => {
 if (curr < acc[0]) return [curr, acc[0]];
 if (curr < acc[1]) return [acc[0], curr];
 return acc;
}, [Infinity, Infinity]);
Number.MIN_VALUE, Number.MAX_VALUE лучше
источник