Практичні завдання

Практичні завдання #

Напишіть функцію Sleep (ms), яка зупиняє виконання async-функції на заданий проміжок часу. #

Реалізуйте один з методів масиву (наприклад, splice). #

Напишіть функцію з RegExp для знаходження всіх HTML-посилань у рядку. #

Реалізуйте функцію, яка виконає callback для всіх елементів певної гілки DOM-дерева. #

Реалізуйте таблицю з віртуальним скролом. #

Реалізуйте функцію перетворення URL query рядка в JSON. #

const inData = "user.name.firstname=Bob&user.name.lastname=Smith&user.favoritecolor=Light%20Blue";


function queryObjectify(arg) {
// ??
}

queryObjectify(inData)
/* Результатом виконання для вхідного рядка, повинен бути наступний об’єкт
{
  'user': {
    'name': {
      'firstname': 'Bob',
      'lastname': 'Smith'
    },
    'favoritecolor': 'Light Blue'
  }
};
*/

Реалізуйте функцію знаходження перетину двох масивів. #

const first = [1, 2, 3, 4];
const second = [3, 4, 5, 6];

function intersection (a, b) {
// ??
}

intersection(first, second) // -> [3, 4]

Реалізуйте функцію / клас для генерації HTML. #

const HTMLConstruct = {};

HTMLConstruct.span('foo'); // -> <span>foo</span>
HTMLConstruct.div.span('bar'); // -> <div><span>bar</span></div>

HTMLConstruct.div.p(
HTMLConstruct.span('bar'),
HTMLConstruct.div.span('baz')
); // -> <div><p><span>bar</span><span>baz</span></p></div>

Якщо є проєкт з обмеженими термінами та некритичною продуктивністю, чим будете керуватися при виборі бібліотек, підходів? Чи все ж будете звертати увагу на продуктивність? Або навпаки: терміни нелімітовані, продуктивність важлива. Ваші дії? #