Как сравнить два массива js
Перейти к содержимому

Как сравнить два массива js

  • автор:

JS сравнение массивов

Давайте попробуем их сравнить при помощи строгого и не строгого сравнения:

console.log(arr1 == arr2); // выведет false console.log(arr1 === arr2); // выведет false

Несмотря на то, что оба массива пусты, они не равны друг к другу, так как, в JavaScript массивы являются объектами, соответственно при сравнении двух объектов, они не будут равны друг другу.

Давайте рассмотрим еще один пример, когда один массив ссылается на другой:

let arr1 = []; let arr2 = arr1; console.log(arr1 == arr2); // выведет true console.log(arr1 === arr2); // выведет true

Как видно из примера, если один массив ссылается на другой, они будут равным. Теперь давайте сравним, что получится, если сравнить массив с самим с собой:

let arr = [1, 2, 3]; console.log(arr == arr); // выведет true

Смотрите также

  • урок
    является ли переменная массивом
  • урок
    очистить массив

Курсы javascript

проблема в том что я начинающий и мне пока трудно ориентироваться в циклах и прочих нюансах)) они пока не очевидны для меня хотя теоретически их освоил))) но думаю со временем мозг окрепнет и рука набъется)))

16.07.2014, 12:12
Регистрация: 15.07.2014
Сообщений: 30

подскажи пожалуйста как правильно определять когда нужно использовать префиксную а когда постфиксную запись инкремента?? я с их теоретической основой знаком но на практике никак не пойму)) они ж блин работают практически одинаково))

16.07.2014, 12:27
Регистрация: 16.03.2010
Сообщений: 1,618

Этот выбор определяет поведение, которое требуется Иногда, как например, в цикле for, это не имеет значения. Хотя я чаще вижу (и сам привык) к постфиксной записи. А вот пример, где это важно:

var array = ["a", "b"]; var index = array.length; // выведет только "b", потому что нужно, чтобы в условие // предыдущее значение. Надо использовать index--. while (--index) alert( array[index] );

16.07.2014, 12:57
Регистрация: 15.07.2014
Сообщений: 30
спасибо))) ох блин как все не просто)))
16.07.2014, 13:13
Регистрация: 16.03.2010
Сообщений: 1,618

На мой взгляд, циклы в принципе неочевидны. Да без них можно и обойтись. Я считаю, более правильным не хреначить всё за раз кучей циклов, а разбивать задачу на кусочки. Допустим, нужно проверять, входит ли массив в другой массив. Сравнение массивов можно вынести отдельно. Опять же, вдруг ещё где пригодится. И получается:

function isEqual(a, b) < return a.length == b.length && a.every(isEqual, b); function isEqual(value, index) < return value === this[index]; >>; function contains(a, b) < return a.length >= b.length && a.some(contains, b); function contains(value, index, array) < var slice = array.slice(index, index + this.length); return isEqual(slice, this); >>; var array1 = ["п","р","ы","в","е","т"], array2 = ["п","р"]; alert( contains(array1, array2) );

На практике, лично мне, почти всегда, для манипуляций с массивами, хватает стандартных методов forEach, map, filter, indexOf, reduce.

16.07.2014, 17:57
Регистрация: 27.05.2010
Сообщений: 33,031

var array1 = ["п", "р", "ы", "в", "е", "т"], array2 = ["п", "р"] alert(array1.map(function (el) < return el == array2[0] >));

Как сравнить два массива js

На нашем сайте вы найдете множество полезных калькуляторов, конвертеров, таблиц, а также справочных материалов по основным дисциплинам.

Самый простой способ сделать расчеты в сети — это использовать подходящие онлайн инструменты. Воспользуйтесь поиском, чтобы найти подходящий инструмент на нашем сайте.

calcsbox.com

На сайте используется технология LaTeX.
Поэтому для корректного отображения формул и выражений
пожалуйста дождитесь полной загрузки страницы.

  • Пользовательское соглашение
  • Cookie
  • О сайте

2017– © Все калькуляторы online

Копирование материалов запрещено

Курсы javascript

нужно собрать третий массив, в который будут входить значения из второго массива, которые разрешены, а те которые не разрешены, нужно изменить на «другое».

12.04.2019, 09:18
Регистрация: 14.01.2015
Сообщений: 12,990

Как обойти в цикле элементы массива известно?
Обходим циклом массив arr, определяя есть ли такой элемент в массиве resolution. Если нет, то этому элементу определяем значение «другое».

Не такая уж это и сверхзадача, начните, хотя бы попытку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *