Сравнение элементов в массиве с использованием циклов и условных операторов
Это то, что меня попросили сделать: учитывая массив элементов, проверьте каждую пару элементов на равенство и эквивалентность, выполнив вывод результатов. Например,
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");
}
}