Написать функцию которая принимает два аргумента
Написать функцию которая принимает два аргумента (две одинаковые массивы). Функция возвращает true если все элементы похожи и false если не похожи
я написал это но не работает, плюс если не сложно можете обьяснить?
let x = [1, 3, 5, 8]
let y = [1, 3, 5, 8, 4]
function equal(x, y) {
if (x == y) {
console.log(true)
return true;
} else if (x !== y) {
console.log(false)
return false;
}
}
equal()
Ответы (1 шт):
Автор решения: vsemozhebuty
→ Ссылка
Любые объекты в JS (в том числе массивы) при сравнении не будут равны, даже если у них одно содержимое. Поэтому нужно проверять поэлементно.
Вот вариант решения для простых случаев.
let a = [1, 3, 5, 8];
let b = [1, 3, 5, 8];
let c = [1, 3, 5, 7];
let d = [1, 3, 5, 8, 4];
function equal(x, y) {
return x.length === y.length &&
x.every((element, index) => y[index] === element);
}
console.log(equal(a, b));
console.log(equal(a, c));
console.log(equal(a, d));
Однако он не будет работать, если:
- Нужно сравнивать рекурсивно (например, элементами массивов могуть быть другие массивы).
- Требуется нестрогое сравнение (например, элементы
1и'1'должны считаться равными).
По условиям задачи не совсем понятно, требуется ли учёт этих особенностей. Если да, уточните.