Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 1) Написать функцию, которая принимает на вход любое количество отрезков,
- // заданных двумя координатами, и возвращает `true`, если любые 2 отрезка пересекаются,
- // иначе возвращает `false`. Пример вызова: `f({x1: 1, x2: 10}, {x1: 11, x2: 123}, {x1: 122, x2: 124}, ...)`
- const intersection = (...sections) => {
- let isIntersection = false;
- sections.forEach((section, index) => {
- for (let i = index + 1; i < sections.length; i++) {
- const next = sections[i];
- const [first, second] = section.x1 < next.x1 ? [section, next] : [next, section];
- // Условие можно поменять на first.x1 <= second.x2 && first.x2 >= second.x1
- // если нужно чтобы x1, x2 были частью отрезка
- if (first.x1 < second.x2 && first.x2 > second.x1) {
- isIntersection = true;
- break;
- }
- }
- });
- return isIntersection;
- };
- const result = intersection({ x1: 1, x2: 10 }, { x1: 11, x2: 123 }, { x1: 123, x2: 124 });
- console.log(result);
- // 3) Написать функцию, принимающую на вход 2 числа `a` и `b`, и возвращающая `x = a/b`, при этом
- // a) в `x` после запятой может быть максимум 2 цифры
- // b) в `x` все нули после запятой должны быть убраны
- // Проверки (в том числе на то что `a` и `b` являются числами) делать не нужно.
- // Функция должна добавлять `$` в начало ответа.
- // Примеры вызова функции:
- // ```
- // f(1, 2); // $0.5
- // f(1, 3); // $0.33
- // f(200, 1); // $200
- // ```
- const getDollars = (a, b) => {
- const printCents = !!(a % b);
- const result = `$${(a / b).toFixed(printCents ? 2 : 0)}`;
- return printCents && result[result.length - 1] === '0' ? result.slice(0, -1) : result;
- };
- console.log('#3', getDollars(1, 2), getDollars(1, 3), getDollars(200, 1));
- // 4) Написать функцию, которая превращает массив в объект,
- // используя четный элемент массива в качестве ключа, а следующий
- // нечетный элемент как значение. Цикл `for` использовать нельзя.
- // Пример вызова функции: `f([1, 2, 'a', 3, 'b', 'c]); // {1: 2, a: 3, b: 'c'}`
- const arrayToObject = arr =>
- arr.reduce((acc, item, index) => {
- if (!(index % 2)) {
- acc[item] = arr[index + 1];
- }
- return acc;
- }, {});
- const arr = [1, 2, 'a', 3, 'b', 'c'];
- console.log('#4', arrayToObject(arr));
- // 5) Написать обратную функцию для функции из 5.
- // Цикл `for` использовать нельзя. Пример вызова функции:
- // `f({1: 2, a: 3, b: 'c'}); // [1, 2, 'a', 3, 'b', 'c]`
- const objectToArray = obj => {
- const result = [];
- const keys = Object.keys(obj);
- keys.forEach(item => {
- result.push(item);
- result.push(obj[item]);
- });
- return result;
- };
- const obj = { 1: 2, a: 3, b: 'c' };
- console.log('#5', objectToArray(obj));
Add Comment
Please, Sign In to add comment