Как сравнить индекс двух массивов друг с другом?

#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 это всего лишь один из них (и поэтому он вам не нужен )