0 / 0 / 0
Регистрация: 28.02.2017
Сообщений: 31
1

Проверить совпадение массивов

27.04.2017, 00:47. Показов 14462. Ответов 12

Author24 — интернет-сервис помощи студентам
Как сделать, если даже один элемент массива не совпадает с другим, то тогда выводится Массивы не совпадаю, то у меня пишет, что первые совпадают,а другие нет.

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function areArraysSame(a,b){
      for(var i = 0; i < a.length;i++){
        if(a.length != b.length){
           console.log('Массивы разной длины');
           break;
         }
         if(a[i] != b[i]){
            console.log('Массивы не совпадают');
            return;
         }
         if(a[i] === b[i]){
            console.log('Массивы совпадают');
         }
      }
    }
     areArraysSame([1,2,2],[1,5,3]);
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2017, 00:47
Ответы с готовыми решениями:

Найти совпадение элементов массивов
Добрый день, а можно ли и здесь как-то избавиться от цикла? Нужно найти индексы массива x, в...

Сравнение массивов на совпадение элементов
есть два целочисленных массива одинаковой длины,нужно вывести количество совпадающих элементов

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

Проверка двух массивов на совпадение знаков чисел
Просьба проверить код. Возможно есть возможность оптимизировать? Программа сравнивает знаки двух...

12
1 / 1 / 0
Регистрация: 18.09.2016
Сообщений: 43
28.04.2017, 19:56 2
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function areArraysSame(array_1, array_2){
       function check(a, b){
     if(a !== b) return false;
     else return true;
       }
       for(var i = 0; i < array_1.length; i++){
     if(!check(array_1[i], array_2[i])){
       console.log("Массивы не совпадают, увы...");
       return false;
     }
       }
       console.log("Массивы совпадают, ура!");
     }
     areArraysSame([1,2,3], [1,2,3]);
0
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
28.04.2017, 21:03 3
Javascript
1
2
3
4
5
6
function areArraysSame(arr1, arr2) {
    console.log('Массивы ' + (JSON.stringify(arr1) === JSON.stringify(arr2) ? '' : 'не ') + 'совпадают');
}
 
areArraysSame([1, 2, 3], [1, 2, 3]); // Массивы совпадают
areArraysSame([1, 2, 3], [1, 2, 2]); // Массивы не совпадают
0
1 / 1 / 0
Регистрация: 18.09.2016
Сообщений: 43
29.04.2017, 09:21 4
аффтар пропал...

Добавлено через 57 секунд
Lazy_Den, Хм, кстати. Можете пояснить, как используется "?" вместе с ":"? потому что я немног не понимаю, а инфы не нашел
0
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
29.04.2017, 11:32 5
Matvey221, тернарный оператор
0
1 / 1 / 0
Регистрация: 18.09.2016
Сообщений: 43
29.04.2017, 16:50 6
Lazy_Den, благодарю
0
1 / 1 / 1
Регистрация: 02.01.2022
Сообщений: 1
02.01.2022, 17:17 7
Лучший ответ Сообщение было отмечено DrType как решение

Решение

Только начал изучать JS по книге от Ника Моргана, не мог сообразить как выполнить данную задачу (.
Благодаря этой статье понял и усовершенствовал код написанный Matvey221. Спасибо!



Javascript
1
2
3
4
5
6
7
8
9
10
11
function areArraysSame(a, b) {
            if (a.length !== b.length) {
                return false;
            }
            for (var i = 0; i < a.length; i++) {
                if (a[i] !== b[i]) {
                    return false;
                }
            }
            return true;
        }
1
1757 / 912 / 373
Регистрация: 26.11.2014
Сообщений: 1,866
Записей в блоге: 1
06.01.2022, 19:41 8
Цитата Сообщение от Jhonny Tutisu Посмотреть сообщение
Только начал изучать JS по книге от Ника Моргана, не мог сообразить как выполнить данную задачу (.
Благодаря этой статье понял и усовершенствовал код написанный Matvey221. Спасибо!
Массивы бывают разные...
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function areArraysSame(a, b) {
    if (a.length !== b.length) {
        return false;
    }
    for (var i = 0; i < a.length; i++) {
        if (a[i] !== b[i]) {
            return false;
        }
    }
    return true;
}
 
a = [
    [1]
]
b = [
    [1]
]
 
console.log(areArraysSame(a, b)) //false
0
Модератор
Эксперт JS
6279 / 3518 / 1050
Регистрация: 07.09.2019
Сообщений: 5,662
Записей в блоге: 1
06.01.2022, 20:05 9
Но для одномерных массивов нормально работает.
0
0 / 0 / 0
Регистрация: 09.04.2021
Сообщений: 17
08.04.2023, 12:36 10
Хотел спросить. Почему если ввести if (a[i] === b[i]) return true, то работать корректно не будет. Надо обязательно ввести if(a[i] !== b[i]), т.е. если а не ровно b.
0
3461 / 1241 / 423
Регистрация: 24.07.2016
Сообщений: 1,850
08.04.2023, 13:06 11
Цитата Сообщение от Евгений9 Посмотреть сообщение
Почему если ввести if (a[i] === b[i]) return true, то работать корректно не будет. Надо обязательно ввести if(a[i] !== b[i])
Всё очень просто. Инструкция return полностью прекращает работу функции и цикла, соответственно. Целью данной задачи, является поиск хотя бы одного несовпадения. В этой точке мы можем смело останавливать код и утверждать, что массивы не равны. В случае поиска всех совпадений нужен другой алгоритм, без инструкции return, ибо на первом же совпадении вы остановите код и вернёте true, хотя на втором, третьем, четвёртом, ... элементах может быть разница в элементах массивов.
1
Заблокирован
08.04.2023, 13:30 12
Цитата Сообщение от Евгений9 Посмотреть сообщение
Хотел спросить.
Можно написать

Javascript
1
2
3
4
5
6
7
8
for (var i = 0; i < a.length; i++) {
  if (a[i] === b[i]) {
    continue;
  } else {
    return false;
  }
}
return true;
1
0 / 0 / 0
Регистрация: 09.04.2021
Сообщений: 17
08.04.2023, 14:02 13
Аааа вот оно что. Теперь все ясно. А то я питон изучал и на сколько я помню, там намного проще)
Спасибо большое всем!
0
08.04.2023, 14:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.04.2023, 14:02
Помогаю со студенческими работами здесь

Проверить совпадение значений в массиве
Есть SOL: test= SharedObject.getLocal(&quot;save&quot;); Есть массив данных names1: var names1:Array =...

Проверить совпадение между записями
В таблице с аккаунтами есть колонка с IP-адресом. Нужно сделать так, чтобы раз в час проверялось,...

Contains, проверить совпадение с несколькими символами
Есть некоторая строка, нужно узнать есть ли в ней спец. символы, к примеру: $#%^.. Просто...

Проверить записи в ListBox и ADODataSet на совпадение
Есть таблица с 2 поями: Код и Наименование. Есть ListBox. Мне нужно создать цикл в котором я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru