как сравнить два массива в javascript

Аватар пользователя Иван Иващенко
Иван Иващенко
18 мая 2023

Для того чтобы просто сравнить массивы по значениям:

function isArraysEqual(firstArray, secondArray) {
  return firstArray.toString() === secondArray.toString();
}

или:

const areArraysEqual = (firstArray, secondArray) => {
  if (
    firstArray.length === secondArray.length &&
    firstArray.every((element, index) => element === secondArray[index])
  ) {
    return true;
  }
  return false;
};```
4 0
Аватар пользователя Aleksey
Aleksey
15 марта 2023

Прямое сравнение массивов всегда будет давать результат false. Поскольку массив, как объект, указывает на ссылку памяти, где хранится "значение". И эти ссылки всегда будут разными, за исключением случая когда мы сравниваем один и тот же объект (массив).

[1, 2, 3] === [1, 2, 3]; // false
[1, 2, 3] > [1, 2, 3]; // false
[1, 2, 3] < [1, 2, 3]; // false
const a = [10, 11];
const b = a;
console.log(a === b); // true

В последнем случае мы сравниваем один и тот же массив и получаем true, т.к. в b скопировалась ссылку на этот массив, а не значение.

4 0
Аватар пользователя Вячеслав Межуревский
Вячеслав Межуревский
26 сентября 2022

Для того чтобы сравнить два массива и получить результат - например список уникальных значений, можно воспользоваться вложенными циклами:

const arr1 = [1,2,3,6,5];
const arr2 = [1,6,7,8];
const result = [];

for (let i = 0; i < arr1.length; i++) {
  for (let j = 0; j < arr2.length; j++) {
    if (arr1[i] === arr2[j]) {
      result.push(arr1[i])
    }
  }
}
0 0
Аватар пользователя Денис
Денис
06 сентября 2023
function isEqual(array1, array2) {
  return JSON.stringify(array1) === JSON.stringify(array2);
}
0 0
Основы Frontend за 14 дней
  • 72 урока в онлайн-тренажере
  • 4 живых вебинара и масскодинг
  • Помощь наставника на весь период обучения

Есть что добавить? Зарегистрируйтесь

или войдите в аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Курсы по программированию на Хекслете

Backend-разработка

Разработка серверной части сайтов и веб-приложений

Frontend-разработка

Разработка внешнего интерфейса сайтов и веб-приложений и верстка

Создание сайтов

Разработка сайтов и веб-приложений на JS, Python, Java, PHP и Ruby on Rails

Тестирование

Ручное тестирование и автоматизированное тестирование на JS, Python, Java и PHP

Аналитика данных

Сбор, анализ и интерпретация данных на Python

Интенсивные курсы

Интенсивное обучение для продолжающих

DevOps

Автоматизация настройки локального окружения и серверов, развертывания и деплоя

Веб-разработка

Разработка, верстка и деплой сайтов и веб-приложений, трудоустройство для разработчиков

Математика для программистов

Обучение разделам математики, которые будут полезны при изучении программирования

JavaScript

Разработка сайтов и веб-приложений и автоматизированное тестирование на JS

Python

Веб-разработка, автоматическое тестирование и аналитика данных на Python

Java

Веб-разработка и автоматическое тестирование на Java

PHP

Веб-разработка и автоматическое тестирование на PHP

Ruby

Разработка сайтов и веб-приложений на Ruby on Rails

Go

Курсы по веб-разработке на языке Go

HTML

Современная верстка с помощью HTML и CSS

SQL

Проектирование базы данных, выполнение SQL-запросов и изучение реляционных СУБД

Git

Система управления версиями Git, регулярные выражения и основы командой строки