Answer

Answer

t.me/js_test

Ответ:

function isArraysEqual(a, b) {
    if (a === b) return true;
    if (a.length !== b.length) return false;

    for (let i = 0; i < a.length; i++) {
        if (!Object.is(a[i], b[i])) return false;
    }

    return true;
}

Объяснение:

Для начала проверяем если a и b это одна и та же ссылка то возвращаем true, если длинна одного массива не равна длине другого то возвращаем false. Если эти проверки не прошли то в цикле сравниваем каждое значение из первого массива с каждым значением из второго (используем Object.is вместо тройного равно для обработки значений по типу NaN), если вдруг значения не равны то сразу возвращаем false. Если цикл успешно завершился то все элементы равны и мы возвращаем true.

Код для проверки:

function isArraysEqual(a, b) {
    if (a === b) return true;
    if (a.length !== b.length) return false;

    for (let i = 0; i < a.length; i++) {
        if (!Object.is(a[i], b[i])) return false;
    }

    return true;
}

console.log(isArraysEqual([1, 2, 3], [1, 2, 3]));
console.log(isArraysEqual([1, 2, 3], [3, 2, 1]));
console.log(isArraysEqual([NaN, "22", Infinity], [NaN, "22", Infinity]));

Report Page