Сравнение элементов в массиве с использованием циклов и условных операторов

Это то, что меня попросили сделать: учитывая массив элементов, проверьте каждую пару элементов на равенство и эквивалентность, выполнив вывод результатов. Например,

var arItems = [2,2, "2", true, "6"];

вывел бы следующее: 2 и 2 эквивалентны 2 и 2 равны, но не эквивалентны 2 и истина не являются ни равными, ни эквивалентными истина и ложь и ни равны, ни эквивалентны

Вы не можете использовать оператор ===, поэтому вы должны использовать if/else и циклы для проверки каждой пары.

Ваш массив должен содержать не менее 5 элементов, демонстрирующих каждый действительный вывод

Ваш код должен быть легко модифицируемым, чтобы изменить элементы в вашем массиве

Это то, что я до сих пор:

var arItems = [2, 2, "2", true, '6'];
for ( x = 0; x < 5; x++) 
{
for ( y = 1; y < 5; y++)
{
    if (typeof arItems [x]== typeof arItems [y] && arItems [x] == arItems [y])
     {
         console.log (arItems [x] + " and " + arItems [y] + " are equivalent");
      }
    else if (arItems [x] == arItems [y] && typeof arItems [x] != arItems [y]) 
        {
            console.log (arItems [x] + " and " + arItems [y] + " are equal but not equivalent");
        }
    else
      {
          console.log ( arItems [x] + " and " + arItems [y] + " are neither equal nor equivalent");
      }
}
}

Я пытаюсь заставить его проверить следующие пары: 2 и 2 . 2 и 2 . 2 & "2" . "2" и правда. true & '6' Я не уверен, есть ли что-то, что я могу добавить к коду, который позволяет ему запускаться автоматически, или мне нужно выписать весь код, чтобы он точно следовал этим парам. Это значит, что он сравнивает индексы по примеру: пары index [0,1,2,3,4]: 0 & 1 . 1 и 2 . 2 и 3 . 3 и 4

1 ответ

Решение

Таким образом, вы можете перебирать элементы одним for цикл, который начинается с индекса 1 и идет конец. Вы можете ссылаться на предыдущий элемент для каждой пары, вычитая 1 из текущего индекса.

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

var items = [2, 2, "2", true, '6'];
for (var i = 1; i < items.length; i++) {
  var item1 = items[i - 1];
  var item2 = items[i];
  if (item1 === item2) {
    console.log(item1, "and", item2, "are equivalent");
  } else if (item1 == item2) {
    console.log(item1, "and", item2, "are equal but not equivalent");
  } else {
    console.log(item1, "and", item2, "are neither equal nor equivalent");
  }
}

Другие вопросы по тегам