Комментарии 4
Комменты к ответам:
1. Использовать concat — плохая идея, асимптотика из линейной превращается в хрен знает какую. Лучше создавать на на старте массив-результат, прокидывать его в рекурсии:
2. Промис ну очень приблизительный получился. На самом деле там куча нюансов, на собеседовании тупо не хватит время это запилить.
8. в debounced функцию нельзя передать this и параметры, надо чутка допилить.
11.
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);
+2
Создайте промис с нуля
Методы resolver и reject обязаны проверять текущее состояние.
Метод then обязан принимать второй аргумент.
Метод then обязан возвращать промис, который разрешается значением на основе переданного ему колбека.
Это всё — требования Promises/A+, стандарт ECMSScript накладывает ещё требования. А у вас не промис получился, а обманка какая-то, которая даже до Thenable не дотягивает...
0
В задаче 7 забыли вернуть значение, которое возвращает func.apply
0
Есть массив переменной длины. Переместите все двойки (2) в конец массива.
А ведь можно было обойтись обычным Array.sort
[2,9,1,5,2,3,1,2,7,4,3,8,29,2,4,6,54,32,2,100].sort((a,b) => b === 2 ? -1 : 0);
Всегда интересно, почему так мало уделяют внимания методам массивов-строк, и при этом смотрят связанные списки и хэш-таблицы.
0
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
Вопросы, которые мне задавали на фронтенд-собеседованиях