Hide
Надо ставить задачи аккуратно )
Лира
но я ее решу вечером
Лира
я учусь всего дней 5 (?)
Nikolai
Что там в реакте нового? Какой стейт-менеджер свежий за месяц хайп набрал?
Denis
я учусь всего дней 5 (?)
А почему ты решила учиться этому?
Nikolai
18 реакт выкатили
Чёт я почитал, ага. И не понял для кого это и зачем
🏴‍☠️
Чёт я почитал, ага. И не понял для кого это и зачем
Какую-то фигню пилят годами и все допилить не могут) Серверные компоненты
Nikolai
Ну саспенс, работающий при сср, ещё ладно. Остальное вообще шляпа
Nikolai
Какие то хуки бесполезные
Лира
А почему ты решила учиться этому?
постоянно +- знакомилась с программистами и было интересно, но или было «не до этого», потому что думала что не для меня или ещё что в итоге из года в год у меня в голове постоянно мелькала мысль о программировании и только разобравшись с накопившимся жизненным дерьмом у психолога я наконец взялась за дело в целом, просто хотела найти хорошее применение своим мозгам и это приглянулось больше всего
Nikolai
Какие то хуки бесполезные
Новые 2 хука всмысле
🏴‍☠️
У меня интерес угасает к фронту. Сейчас учу Rust и читаю книгу про архитектуру компьютеров)
🏴‍☠️
Новые 2 хука всмысле
useId сделали) чтобы никто в key не писал Math.random
🏴‍☠️
Hide
Блин редьюсе складывает все элементы массива
Hide
Это разве нужно?
Hide
Что значит складывает?
ну вот глядя на пример из learn.javascript я так понимаю....
Hide
let arr = [1, 2, 3, 4, 5]; let result = arr.reduce((sum, current) => sum + current, 0); console.log(result);
Hide
получается 15
Hide
это же сумма всех этих чисел
Hide
а как их вытаскивать оттуда по очереди
Hide
я знаю только по индексу руками 😳
Anton Soldatov
Блин редьюсе складывает все элементы массива
У редьюса есть второй аргумент помимо колбека первым
Anton Soldatov
Прокидываешь туда один из массивов когда редьюсишь второй, и собираешь из них массив под fromEntries например
🏴‍☠️
Блин редьюсе складывает все элементы массива
reduce циклом проходит по массиву и применяет функцию-калбэк к каждому элементу. Reduce принимает калбэк и аккумулятор в качестве параметров. Аккумулятор может быть числом, строкой, объктом и т.д. в процессе итерировании по исходному массиву, его можно преобразовать в необходимую структуру данных, указанную в аккумуляторе
honey
вот я также сижу)))
Hide
жесть
Anton Soldatov
Учите редьюс, это один из самых ходовых и простых инструментов для преобразований сложных
honey
я пока про this читаю (потому что нужно понять bind, call и applay)
Anton Soldatov
Медленный. Лучше юзать for простой или while
Не целесообразно в 2022, он будет медленнее на проценты
Anton Soldatov
А если тебя надо прям быстро то уж тогда можно на васме растом модуль написать
🏴‍☠️
Медленный. Лучше юзать for простой или while
Разве после компиляции в байт-код есть разница?
🏴‍☠️
honey
спасибо)
honey
впереди много тыков в разные консоли) со строгим режимом, без него, с возвращением this из пустой функции, из функции со свойствами внутри, а дальше скорее всего буду смотреть привязку контекста
Hide
магия какая то ))
🏴‍☠️
А JS компилируется в байт-код?
When V8 compiles JavaScript code, the parser generates an abstract syntax tree. A syntax tree is a tree representation of the syntactic structure of the JavaScript code. Ignition, the interpreter, generates bytecode from this syntax tree.
Hide
const one = ['Apple', 'Pear', 'Plum', 'Apricot'] const two = ['Red', 'Yellow', 'Purple', 'Orange'] const fruitsWithColor = one.reduce((acc, cur, idx) => {acc[cur] = two[idx] return acc}, {}) console.log(fruitsWithColor)
Hide
это я точно туда смотрю?
Hide
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
🏴‍☠️
const one = ['Apple', 'Pear', 'Plum', 'Apricot'] const two = ['Red', 'Yellow', 'Purple', 'Orange'] const fruitsWithColor = one.reduce((acc, cur, idx) => {acc[cur] = two[idx] return acc}, {}) console.log(fruitsWithColor)
На каждой итерации записываешь в объект в качестве ключа элемент массива one, а в качестве значения элемент массива two acc[cur] = two[idx] acc['Apple'] = two[0] ('Red') acc['Pear'] = two[1] ('Yellow') ...
🏴‍☠️
Ну а почему не должно быть разницы? Так то JS вообще не компилируется
https://medium.com/dailyjs/understanding-v8s-bytecode-317d46c94775#:~:text=When%20V8%20compiles%20JavaScript%20code,bytecode%20from%20this%20syntax%20tree.
Hide
Hide
а вот это нужно для записи в объект?
Hide
чето я немогу переварить все это
🏴‍☠️
это аккумулятор, в данном случае объект, в который записываешь обращаясь через acc
🏴‍☠️
переменная acc в функции, которую принимает reduce это и есть тот объект, который указывается в конце reduce после запятой
Denis
И JS не компилируется
Denis
https://medium.com/dailyjs/understanding-v8s-bytecode-317d46c94775#:~:text=When%20V8%20compiles%20JavaScript%20code,bytecode%20from%20this%20syntax%20tree.
Только JIT может. И байт код строится из AST. Подумай будет ли разница между редьюс и базовым фором
🏴‍☠️
for побыстрее
Denis
for побыстрее
Пиздец. А ты думаешь я наугад говорил?
Denis
Редьюс использует фор в своём теле
🏴‍☠️
Зато редьюсь можно в одну строку написать) arr.reduce((acc, item, idx) => ((acc[idx] = arr[idx + 1]), acc), {})
🏴‍☠️
Можно так написать любой код
Напиши цикл for в одну строку
Denis
Напиши цикл for в одну строку
После минификации всё твоё приложение будет в одну строку
🏴‍☠️
За удобство абстракций платим производительностью, но это мелочи
🏴‍☠️
Циклы for нельзя написать цепочкой как методы .map .filter .reduce
honey
ребят, доброго вечера! а this используется в функциях, не обёрнутых в объект ?
🏴‍☠️
ребят, доброго вечера! а this используется в функциях, не обёрнутых в объект ?
this сейчас в основном юзают внутри классов, остальное пережитки прошлого
🏴‍☠️
Класс — это функция
Это внутренние детали реализации, я про синтаксис
Denis
Это внутренние детали реализации, я про синтаксис
Ну ты хуйню написал. Класс — это херовая имлементация функции
🏴‍☠️
Хуйня тут
А ты еще на функциях-конструкторах пишешь?