#javascript
#javascript
Вопрос:
у меня есть два массива с каждым a для каждого для проверки индекса. Но теперь я хочу сравнить индекс обоих и проверить, сравниваются ли они.
Это мой массив и для каждого цикла. Кто-нибудь может мне с этим помочь?
items: ['.js-countdown-item']
const arrayTime = [days, hours, minutes, seconds]
arrayTime.forEach((item, i) => {
console.log(i)
})
items.forEach((item, i) => {
console.log(i)
})
Комментарии:
1. Прежде всего, вам нужно иметь массивы с одинаковой длиной, чтобы вы могли перебирать один и использовать текущий индекс (например, i) для них обоих.
2. Вы собираетесь сравнивать items и arrayTime ? Может быть, вы имеете в виду что-то, что возможно с Lodash. Смотрите lodash.com/docs/4.17.15#isEqual
3. почему вы хотите сравнить индексы? для меня это не имеет смысла. возможно, вы могли бы проверить длину обоих массивов, чтобы увидеть, отличаются ли они
Ответ №1:
Вот код, демонстрирующий, как это сделать :
let allIndexesCompare = true;
const check = items.length === arrayTime.length;
// make sure they have the same length
if(check){
items.forEach((item, i) => {
if(item !== arrayTime[i]) allIndexesCompare = false;
})
}
// now you have your var "allIndexesCompare" set to true or false, just use it
Комментарии:
1. Для длинных массивов простой
for
цикл сbreak
может сэкономить некоторые ресурсы2. да, верно, нужно выйти из цикла в тот момент, когда вы нажмете сбой
Ответ №2:
Сравнение индексов массивов бесполезно. Вы можете просто сравнить длину массива для равенства, в противном случае для сравнения значений массива вам понадобится цикл forEach
Комментарии:
1. «вам нужен цикл forEach» — как насчет простого
for
цикла (возможно сbreak
помощью)? илиreduce
? Существует много способов,forEach
это всего лишь один из них (и поэтому он вам не нужен )