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

Как сравнить элементы массива

  • автор:

Сравнение элементов массива

Доброе время суток. У меня такой вопрос. Как сравнить элементы массива,допустим массив состоит из пяти элентов.

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Сравнение элементов массива с предыдущим элементом этого массива
По заданию нужно сделать так, чтобы программа выводила сумму при неубывающей последовательности и.

Сравнение элементов массива
Учусь инженером-программистом, первый курс предлагает изучение языка C++ на лицензионной версии.

Сравнение элементов массива
Подскажите как модернизировать функцию заполнения массива с клавиатуры, чтобы она сравнивала каждое.

Сравнение элементов массива
Всем привет, люди помогите написать программу. У нас есть упорядоченный массив, в этот массив.

Курсы javascript

Доброго времени суток, есть небольшая функция которая должна искать совпадение с введенным значением в input и элементами массива, если совпадение есть должна появиться надпись true, если нет false.

Но true выводится только если в input введено (пять) — то-есть последнее значение массива,

если же ввести (два) или (три) выводит false.

Вопрос, почему так происходит, если значение (три) есть в массиве, и как сделать чтобы функция работала корректно?

function myFunc() < let arr = ['один', 'два', 'три', 'четыре', 'пять']; let input = document.getElementById('input').value; //получаем значение введенное в input let out = document.getElementById('out'); for(let i = 0; i < arr.length; i++)< if(arr[i] == input)< out.innerHTML = 'true'; >else < out.innerHTML = 'false'; >> > document.getElementById('enter').onclick = myFunc;
  

26.02.2018, 17:39
Регистрация: 27.05.2010
Сообщений: 33,009

TheSanches,
одно из множества решений,
в цикле вам нужно получить значение, а после цикла его установить

26.02.2018, 17:43
Регистрация: 04.12.2012
Сообщений: 3,654

После того как вы нашли совпадение, нужно останавливать цикл.
Вы можете отказаться от перебора массива и воспользоваться методом «indexOf»:

document.getElementById('enter').onclick=function()< document.getElementById('out').innerHTMl= ['один', 'два', 'три', 'четыре', 'пять'].indexOf( document.getElementById('input').value.toLowerCase() )>-1; >;

Сравнение массивов в JavaScript

Comparing arrays in JavaScript.

Часто разработчики сталкиваются с необходимостью сравнить два массива в JavaScript. Например, можно иметь два массива чисел и нужно узнать, содержат ли они одинаковые числа в одинаковом порядке. Интуитивно кажется, что для этого достаточно использовать оператор сравнения == или === . Однако, если попробовать сделать это, то результат может быть неожиданным.

var array1 = [1, 2, 3]; var array2 = [1, 2, 3]; console.log(array1 == array2); // Выводит false console.log(array1 === array2); // Выводит false

Причина этого в том, что операторы == и === сравнивают ссылки на объекты, а не их содержимое. В данном случае array1 и array2 — это разные объекты, хотя их содержимое одинаково.

Один из способов сравнить содержимое массивов — преобразовать их в строки с помощью метода JSON.stringify и сравнить полученные строки.

var array1 = [1, 2, 3]; var array2 = [1, 2, 3]; console.log(JSON.stringify(array1) == JSON.stringify(array2)); // Выводит true

Этот способ работает, но он может быть неэффективным для больших массивов, поскольку JSON.stringify преобразует весь массив в строку.

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

function arraysAreEqual(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; > var array1 = [1, 2, 3]; var array2 = [1, 2, 3]; console.log(arraysAreEqual(array1, array2)); // Выводит true

В этом коде функция arraysAreEqual сначала проверяет, равны ли длины массивов. Если они не равны, то массивы точно не одинаковы, и функция возвращает false . Затем функция проходит по каждому элементу массива и сравнивает его с соответствующим элементом другого массива. Если она находит пару несовпадающих элементов, то она возвращает false . Если функция проходит через все элементы и не находит несовпадений, то она возвращает true , указывая на то, что массивы одинаковы.

Сравнение элементов массива между собой в JS

Сделал реализацию массива между собой. Но почему то все равно выводит false(в моем случае все элементы массива равны).

for (let j = 0; j < arr.length; j++) if(arr[j] == arr[j + 1]) res = true;
>
else res = false;
>
>
if (res == true) return true;
>
else
return false;
>

Почему не правильно реализует?

Лучший ответ

const arr = [1,2,3,4,5,5,4,3,2,1];
for (let i = 1; i < arr.length; ++i) if (arr[i - 1] == arr[i]) alert(arr[i - 1] + " = < " + arr[i]);
else alert(arr[i — 1] + » > » + arr[i]);
>

Остальные ответы

Потому что у тебя каждый раз значение res перезаписывается и второй if выполняется вне цикла for. Т. е. во второй if передается последнее значение res. И после второго else не хватает фигурной скобки (либо вообще else можно убрать:
if (res == true) return true;
>
return false;

Это будет работать. т. к. если res == true последняя строка никогда не выполнится. И наоборот.
И лучше ставить строгое равенство (===).

А вообще проще сделать так (решение в одну строку):
Есть встроенная функция массива. В данном случае сравниваем каждый элемент с первым:
return arr.every(el => el === arr[0])

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

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