Вадим
благодарю
Maksim
это в 2 прохода, так не интересно
Maksim
Maksim
[3,2,1].reduce(([index, value], item, i) => item < value ? [i, item] : [index, value], [0, Infinity])[0];
Ivan
[3,2,1].reduce(([index, value], item, i) => item < value ? [i, item] : [index, value], [0, Infinity])[0];
Reduce для каждого элемента будет выполнять анонимную функцию, для больших массивов не подходит
Pavel
и не читабельно
Maksim
Anonymous
@hitmaker
Anonymous
:D
Anonymous
Vladislav
Vladislav
Maksim
2 прохода vs 1 проход
Maksim
Если есть это
что будешь делать когда в массиве будет не число, а [{value: 1}, {value: 2}]?
Anonymous
2 прохода vs 1 проход
ну тогда сортировку делаешь и выводишь первый элемент
[3,2,1].sort((a,b)=>a-b)[0]
Maksim
Anonymous
в это и плох жс что производительный код тяжело читаем
Pavel
а в каком языке производительный код легко четаем?
Anonymous
по факту в твой подход ничем не отличается даже по результативности от выше предложенного
Maksim
Pavel
пруфы давай
Maksim
Тебе надо ты и тести, мне это не интересно
Anonymous
Ошибаешься очень сильно
Maksim
Кстати количество аргументов функции ограничено, так что юзать Math.min(...args) чревато на больших данных
Pavel
а пруфы будут или зассал?
Anonymous
Hi, I'm feifei and nice to meet you
Maksim
Pavel
зассал значит
Maksim
Поищи своих ровесников для такой аргументации
Pavel
Edgar
А чем это reduce был плох?
Pavel
трудно поддерживаемый код
stay
Edgar
Как бы разумеется ни кто не стал бы в таком виде писать, его нужно вывести в отдельную функцию и читатся норм будет
Edgar
Просто если уж отказатся от for/while то это самый производительный вариант
Maksim
Maksim
А чем ограничено?)
имплементацией браузера
https://stackoverflow.com/questions/22747068/is-there-a-max-number-of-arguments-javascript-functions-can-accept
stay
Maksim
Edgar
Там еще писали что выполнять функцию для каждого элемента будет медленно, хотя в моих тестах стрелочные функции почти не замедляют код(в отличии от не стрелочных)
Maksim
Edgar
Maksim
для reduce колбэк создастся только один раз
так же как для map и filter и вообще любой колбэк в момент вызова
Edgar
Ты хочешь сказать что в , допустим, reduce, по скорости не важно колбеу стрелочная или нет?
Maksim
Maksim
какие могут быть сомнения
Edgar
А в моих тестах разница на больших массивах (100млн) было заметно, отсюда и посчитал что не стрелочный колбек создается заного
Maksim
есть код?
Maksim
Edgar
Да
Maksim
запуск нативный или через транспилер был?
Edgar
Кода не осталось, можешь сам сделать, только на локалке не делай, а то другие процессы помешают. Лучше на repl.it
Edgar
Edgar
Я думаю это из-за того что не стрелочные имеют this, т.е мб на создание this время уходит
Maksim
Edgar
Maksim
const array = Array(10000000).fill(1);
console.time("start1");
console.log(array.reduce((result, i) => i + result));
console.timeEnd("start1");
console.time("start2");
console.log(
array.reduce(function(result, i) {
return result + i;
})
);
console.timeEnd("start2");
примерно одинаковое время на нескольких запусках
Edgar
Ну может там оптимизация какая нибудь, попробуй сначала не стрелочную
Maksim
да все то же самое
Iv
Iv
Просто, к слову
Anonymous
Привет. Не могли бы подсказать книгу по изучению ОС и компьютера?
Pavel
windows для чайников
Maksim
Maksim
Pavel
оба правы или не шаришь?
Maksim
не моя специализация
Oleg
Roman
Dan
Китайская угроза? (c)
Stas
Ребята такой вопрос. В зависимости от ширины экрана меню появляеться в 3х различных местах. Насколько будет правельным сделать это с помощью js или же всетаки по класике display none
Pavel
Pavlo
Stas
зачем использовать JS, если можно обойтись CSS?
Ну если на css то это в кое будет целых 4 одинаковых кода (4 если учитывать еще и мобильное меню) Движ ларавел и шаблонизатор недаст правельно реализовать смену положений блоков на css
Pavlo