Обновить
4
0,2
Рейтинг
2
Подписчики
Отправить сообщение

В примере двойной цикл довольно изолированный, его удобно вынести в функцию. Может оказаться более хитрый случай, когда логика внутри циклов завязана на всякие локальные переменные и может их менять, тут уже труднее. Соглашусь, что такое бывает нечасто, но если уж встретилось, то вполне можно заюзать метку. Конечно, и в этом случае вместо метки подойдёт IIFE с return, однако не факт что это читабельнее (тут субъективно).

Связка break+label помогает, например, без лишних костылей завершить вложенный цикл.

Надо заметить что === избавляет от большинства таких проблем, но сильно усложняет код в некоторых ситуациях.

Нет, не замечал усложнения. Особенно после перехода на TS удобно. Единственный случай, где нужен ==, это сравнение с null, чтобы ещё и undefined прихватить, но все линтеры об этом кейсе знают и не ругаются.

С Mobx у разработчика развязаны руки в архитектурном плане

С редуксом не меньше, такого могут наворотить… Джуны любым инструментом творят дичь.
Мобикс — всё таки ООП, исследованный вдоль и поперек. Паттерны проектирования, работы всяких классиков. Это проверено временем.

После MobX читать про Redux + Redux Thunk + Reselect (особенно Reselect) можно разве что в виде страшилки на ночь. Да и учитывая, что у мобикса и редукса диаметрально противоположные философии, это может разорвать мозг новичка).


А насчёт РеактНатив — может, всё таки доведут его до ума, чтобы уходить во всякую ересь не надо было...

на прошлой работе писал фронт для букмекерского софта, там слово "parlay" означало экспресс или мультиставку

Хитрость задачи в том, что она про целые числа. С вещественными, уже при n >= 3 можно получить набор, где не все равны: x1 = x2 = А, остальные числа В, так что А>В, и (А + В)/2 = cbrt(AAB)

Можно считать, что стабильная сортировка неявно добавляет в сравнение дополнительный критерий — позицию элемента на момент старта. Конечно, это не относится к случаям, где исходный порядок вообще не определен (например, выборка из БД), но в массиве он есть.

Коварство в том, что обычно нативные реализации сортировки для маленьких массивов (в хроме — менее 10 элементов) используют не q-sort, а какую-то другую, стабильную сортировку. И если об этом не знать, то можно забыть проверить алгоритм на массиве покрупнее. Статья-предостережение, скажем так.

Интересно, почему в V8 запилили TimSort, а не BlockSort? У последнего space complexity O(1), в отличии от.

В MobX подобное тоже есть.
Картинка с жизненным циклом и методами компонента малость устарела, getDerivedStateFromProps теперь для любого update
Redux — это детище создателей ядра React.

Ден Абрамов написал Redux ещё до присоединения к команде Реакта, если не ошибаюсь (по крайней мере, он не был сотрудником FB)
Лично я обожаю MobX. Но, к сожалению, «отраслевым стандартом» считается Redux.
MobX потихоньку тоже становится стандартом.

В последнюю строку custom_new вкралась ошибка! Если constructor вернёт примитивное значение (не объект), результатом custom_new должен быть self. Кстати, оный self лучше через Object.create, строкой меньше.

По поводу 3: если автоматическая высота может быть разная (меняется контент), то это надо делать перед каждой анимацией?

scaleY совсем не то же самое, что height.
Комменты к ответам:

1. Использовать concat — плохая идея, асимптотика из линейной превращается в хрен знает какую. Лучше создавать на на старте массив-результат, прокидывать его в рекурсии:
function flatten(arr, r) {
    r = r || [];
    arr.forEach(item => Array.isArray(item) ? flatten(item, r) : r.push(item));
    return r;
}


2. Промис ну очень приблизительный получился. На самом деле там куча нюансов, на собеседовании тупо не хватит время это запилить.

8. в debounced функцию нельзя передать this и параметры, надо чутка допилить.

11.
Children.prototype = Object.create(Parent.prototype);

Охренеть, руль стоит как нормальная тачка))

В воркере, если вдруг понадобится запрос, то xhr обязан быть синхронным

Насколько я знаю, мистер Алеф давно перешёл из группы V8 в группу Дарт, и с тех пор многое могло поменяться. Но некоторые его описания остаются актуальными, да.

По поводу исключений вопрос: промисовые режекты — в некотором смысле аналоги исключений. Является ли "искусственный" режект плохой практикой?

Информация

В рейтинге
3 578-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность

Специализация

Фронтенд разработчик
Старший
JavaScript
TypeScript
React
HTML
CSS
Веб-разработка
Redux
MobX
Webpack