А кто сейчас в здравом уме будет использовать самописный промис? Да и необходимость использовать сейчас проверенный полифил не особо-то актуальна, это только если требуется поддержка ie11 или Opera Mini. Остальные приличные браузеры уже давно поддерживают. Да и к тому же, если можешь написать промис, то какие проблемы подправить код с const на var, а стрелочные функции на обычные, где надо прибиндив контекст.
Но на мой взгляд, не очень подходящий вопрос для собеса.
На собеседование в МТС попросили реализовать promise(я с ходу не смогла написать),
в Wildberries — Promise.all и еще три задачи из перечисленных(здесь решила все четыре),
задача из Mail:
var obj = {};
function func(x) {
x = 1;
...
в СТС — «сжатие строк»,
Комсомольская правда — обход дерева.
Как бы большинство не шарашкины конторы с предлагаемой зп выше 150К и всякими ништяками, бонусами. Выбирала по зп, относительно близком ко мне территориальном расположении и что бы компания была более, менее известной.
Это я еще в Яндекс не ходила, вот они славятся своими задачами на алгоритмы.
В статье два прогона, один фильтром, один map`м. В комменте используется reduce, который тоже проходит по всему массиву, переданному в качестве аргумента функции, и последовательно перебирает элементы этого массива. В итоге выигрыш в один прогон.
Метод «arr.reduce(callback[, initialValue])» используется для последовательной обработки каждого элемента массива с сохранением промежуточного результата.
Это один из самых сложных методов для работы с массивами.
Какой процент из подобных задач встречался вам на работе?
Если только сортировка по уникальности. Ну как бы, когда приходишь на собес, тебя не спрашивают: «Хочешь такую задачу порешать, а может тебе не понравилась эта, можем на выбор предложить эту и эту».Увы, так не бывает. Ты или делаешь ту, что дают, или «мы вам перезвоним».
Если бы я проводила собеседование, стала бы я давать такие задачи, точно нет.
А эта вся ерунда на собеседованиях гуглится за 2 минуты если будет надо, смысл вот давать эти задачи?
Может они прекрасно гугляться, но на собесе же не достанешь мобильный и не начнешь искать решение задачи в интернете? В противном случае результат: «мы вам перезвоним».
мы переписывались с человеком до февраля в ожидании, а потом связь и с ним оборвалась
значит не имел претензий. Все же почта и участвуя, надо понимать, что есть риск, что посылка потеряется.
Можно исправить впечатления от не удавшегося подарка… Грядет новый год. Можно участвовать снова в тайном санте.
С опытом обычно приходит, что зачем писать что-то своё, если можно использовать готовое решение. Порой оно не на 100 процентов удовлетворяет задаче и приходится подпилить или улучшить. К примеру кто сейчас будет писать маску для телефона, когда когда есть стабильные, проверенные решения. Зачастую в них предусмотрены те варианты, до которых с ходу не додумаешься.
В [] не будет найден метод slice, затем поиск пойдет в прототипе массива.
call позволяет вызвать метод в другом контексте(фактически воспользоваться «чужим методом»). Аналогична запись Array.prototype.slice.call(arguments, 1).
slice может принимать как один аргумент, так и два. Если мы передаем один, то метод вернет подмассив, который содержит значения исходного, начиная с индекса и до конца исходного массива.
У arguments нет метода slice даже в прототипе, поэтому ошибка.
Сейчас есть Spread и Rest операторы.
function getStr(...arg) {
return arg.slice(1).join(arg[0]);
}
Я тоже считаю, что такой тип вопросов не показатель. Как-то меня попросили набрать вопросов для собеса кандидатов в один проект mail. Я с энтузиазмом предложила те, что у меня были из яндекса + ряд в том же духе, для подготовки к нему. Но тим лид отверг этот принцип(просто в яндексе любят вопросы про сортировки, очереди, деревья и другие достаточно специфичные, не часто используемые на практике вещи)
красивый, безусловно, но что это говорит о кандидате
Наверно по принципу: «Если решил такое, то и с другим справится». Вообще, я скучаю по тем временам, когда вопросы были типа: «Чем function Declaration отличается от Expression».
За такое на первом же ревью а-та-та.
Но на фоне остальных вопросов — этот вполне норм, там скорее смотрят как человек будет рассуждать.
Но на мой взгляд, не очень подходящий вопрос для собеса.
в Wildberries — Promise.all и еще три задачи из перечисленных(здесь решила все четыре),
задача из Mail:
в СТС — «сжатие строк»,
Комсомольская правда — обход дерева.
Как бы большинство не шарашкины конторы с предлагаемой зп выше 150К и всякими ништяками, бонусами. Выбирала по зп, относительно близком ко мне территориальном расположении и что бы компания была более, менее известной.
Это я еще в Яндекс не ходила, вот они славятся своими задачами на алгоритмы.
learn.javascript.ru — Массив: перебирающие методы
Если только сортировка по уникальности. Ну как бы, когда приходишь на собес, тебя не спрашивают: «Хочешь такую задачу порешать, а может тебе не понравилась эта, можем на выбор предложить эту и эту».Увы, так не бывает. Ты или делаешь ту, что дают, или «мы вам перезвоним».
Если бы я проводила собеседование, стала бы я давать такие задачи, точно нет.
Может они прекрасно гугляться, но на собесе же не достанешь мобильный и не начнешь искать решение задачи в интернете? В противном случае результат: «мы вам перезвоним».
Можно исправить впечатления от не удавшегося подарка… Грядет новый год. Можно участвовать снова в тайном санте.
мне на хорошее дело не жалко.
С опытом обычно приходит, что зачем писать что-то своё, если можно использовать готовое решение. Порой оно не на 100 процентов удовлетворяет задаче и приходится подпилить или улучшить. К примеру кто сейчас будет писать маску для телефона, когда когда есть стабильные, проверенные решения. Зачастую в них предусмотрены те варианты, до которых с ходу не додумаешься.
call позволяет вызвать метод в другом контексте(фактически воспользоваться «чужим методом»). Аналогична запись Array.prototype.slice.call(arguments, 1).
slice может принимать как один аргумент, так и два. Если мы передаем один, то метод вернет подмассив, который содержит значения исходного, начиная с индекса и до конца исходного массива.
У arguments нет метода slice даже в прототипе, поэтому ошибка.
Сейчас есть Spread и Rest операторы.
Я тоже считаю, что такой тип вопросов не показатель. Как-то меня попросили набрать вопросов для собеса кандидатов в один проект mail. Я с энтузиазмом предложила те, что у меня были из яндекса + ряд в том же духе, для подготовки к нему. Но тим лид отверг этот принцип(просто в яндексе любят вопросы про сортировки, очереди, деревья и другие достаточно специфичные, не часто используемые на практике вещи)
Наверно по принципу: «Если решил такое, то и с другим справится». Вообще, я скучаю по тем временам, когда вопросы были типа: «Чем function Declaration отличается от Expression».
Да, здесь я виновата, не корректно пересказала. Там речь шла о div с позиционированием static
С его слов надо было с использованием нативного js.