Назад Вперед Зміст


Задачі на зворотні та стрілкові функції

17 варіантів для самостійного розв'язання

1

Перетворення функції на стрілкову

Перетворіть звичайну функцію на стрілкову:

function multiply(a, b) {
    return a * b;
}
const multiply = (a, b) => a * b;
2

Callback з одним параметром

Створіть функцію, яка приймає число та callback, і викликає callback з квадратом цього числа.

💡 Функція повинна виглядати так: processNumber(5, callback) → викликає callback(25)
function processNumber(num, callback) {
    callback(num * num);
}

// Використання:
processNumber(5, (result) => console.log(result)); // 25
3

Стрілкова функція без параметрів

Перетворіть на стрілкову функцію, яка повертає поточну дату:

function getCurrentDate() {
    return new Date();
}
const getCurrentDate = () => new Date();
4

Фільтрація масиву з callback

Створіть функцію filterArray, яка приймає масив та callback, і повертає новий масив з елементами, для яких callback повертає true.

💡 Використайте метод filter або реалізуйте власну логіку
function filterArray(arr, callback) {
    const result = [];
    for (let i = 0; i < arr.length; i++) {
        if (callback(arr[i])) {
            result.push(arr[i]);
        }
    }
    return result;
}

// Або з використанням вбудованого filter:
const filterArray = (arr, callback) => arr.filter(callback);
5

Стрілкова функція з одним параметром

Перетворіть на стрілкову функцію:

function double(x) {
    return x * 2;
}
const double = x => x * 2;
6

Callback для обробки помилок

Створіть функцію divide, яка приймає два числа та два callback: для успіху та помилки. Якщо дільник = 0, викликає callback помилки.

function divide(a, b, onSuccess, onError) {
    if (b === 0) {
        onError("Ділення на нуль!");
    } else {
        onSuccess(a / b);
    }
}

// Використання:
divide(10, 2, 
    (result) => console.log("Результат:", result),
    (error) => console.log("Помилка:", error)
);
7

Стрілкова функція з тілом

Перетворіть на стрілкову функцію (з фігурними дужками):

function checkAge(age) {
    if (age >= 18) {
        return "Повнолітній";
    } else {
        return "Неповнолітній";
    }
}
const checkAge = (age) => {
    if (age >= 18) {
        return "Повнолітній";
    } else {
        return "Неповнолітній";
    }
};
8

Callback в setTimeout

Створіть функцію delayedMessage, яка приймає текст, затримку та callback, і викликає callback з текстом після затримки.

function delayedMessage(message, delay, callback) {
    setTimeout(() => {
        callback(message);
    }, delay);
}

// Використання:
delayedMessage("Привіт через 2 секунди!", 2000, (msg) => console.log(msg));
9

Неявне повернення об'єкта

Створіть стрілкову функцію, яка повертає об'єкт з полями name та age (використайте круглі дужки).

const createPerson = (name, age) => ({ name, age });

// Використання:
const person = createPerson("Іван", 25);
console.log(person); // {name: "Іван", age: 25}
10

Callback для математичних операцій

Створіть функцію calculate, яка приймає два числа та callback з операцією, і повертає результат.

function calculate(a, b, operation) {
    return operation(a, b);
}

// Використання:
const result = calculate(10, 5, (x, y) => x + y);
console.log(result); // 15
11

Стрілкова функція як callback

Використайте стрілкову функцію як callback в методі map для подвоєння кожного елемента масиву.

const numbers = [1, 2, 3, 4, 5];
// Ваш код тут
const numbers = [1, 2, 3, 4, 5];
const doubled = numbers.map(num => num * 2);
console.log(doubled); // [2, 4, 6, 8, 10]
12

Callback з кількома параметрами

Створіть функцію processUser, яка приймає об'єкт користувача та callback, і викликає callback з ім'ям та віком користувача.

function processUser(user, callback) {
    callback(user.name, user.age);
}

// Використання:
const user = { name: "Марія", age: 30 };
processUser(user, (name, age) => {
    console.log(`Ім'я: ${name}, Вік: ${age}`);
});
13

Стрілкова функція з деструктуризацією

Створіть стрілкову функцію, яка приймає об'єкт з полями width та height, і повертає площу.

const calculateArea = ({ width, height }) => width * height;

// Використання:
const rectangle = { width: 10, height: 5 };
console.log(calculateArea(rectangle)); // 50
14

Ланцюжок callback-ів

Створіть функцію, яка приймає число та два callback. Спочатку викликає перший callback з числом, потім другий з результатом.

function processNumber(num, callback1, callback2) {
    const result1 = callback1(num);
    callback2(result1);
}

// Використання:
processNumber(
    5,
    (x) => x * x, // 25
    (y) => console.log(y + 10) // 35
);
15

Стрілкова функція з параметрами за замовчуванням

Створіть стрілкову функцію greet, яка приймає ім'я та привітання (за замовчуванням "Привіт"), і повертає рядок.

const greet = (name, greeting = "Привіт") => `${greeting}, ${name}!`;

// Використання:
console.log(greet("Олександр")); // "Привіт, Олександр!"
console.log(greet("Олена", "Добрий день")); // "Добрий день, Олена!"
16

Callback для перевірки умови

Створіть функцію findInArray, яка приймає масив та callback-умову, і повертає перший елемент, що задовольняє умову.

function findInArray(arr, condition) {
    for (let i = 0; i < arr.length; i++) {
        if (condition(arr[i])) {
            return arr[i];
        }
    }
    return null;
}

// Використання:
const numbers = [1, 3, 5, 8, 10];
const result = findInArray(numbers, (num) => num > 5);
console.log(result); // 8
17

Комбінація стрілкових функцій

Створіть дві стрілкові функції: одна повертає іншу функцію, яка множить число на заданий множник.

const createMultiplier = (multiplier) => (number) => number * multiplier;

// Використання:
const double = createMultiplier(2);
const triple = createMultiplier(3);

console.log(double(5)); // 10
console.log(triple(5)); // 15
Назад Вперед Зміст