Клавиша / esc

.entries()

Возвращает объект-итератор индексов и значений элементов массива.

Время чтения: меньше 5 мин

Кратко

Скопировано

Метод entries() возвращает новый объект-итератор, созданный из пар индекс / значение для всех элементов массива. Подробнее о том, что такое итератор, можно прочитать в статье Итератор.

Пример

Скопировано

Создадим объект-итератор и получим его значения с помощью for...of:

        
          
          const cities = ['Сен-Тропе', 'Сан-Себастьян', 'Сан-Марино']const iterator = cities.entries()for (const item of iterator) {  console.log(item)}// [0, 'Сен-Тропе']// [1, 'Сан-Себастьян']// [2, 'Сан-Марино']
          const cities = ['Сен-Тропе', 'Сан-Себастьян', 'Сан-Марино']

const iterator = cities.entries()

for (const item of iterator) {
  console.log(item)
}

// [0, 'Сен-Тропе']
// [1, 'Сан-Себастьян']
// [2, 'Сан-Марино']

        
        
          
        
      

Создадим объект-итератор и получим индекс и значение первого элемента коллекции:

        
          
          const generations = ['X', 'Y', 'Z', 'Alpha']const iterator = generations.entries()console.log(iterator.next().value)// [0, 'X']
          const generations = ['X', 'Y', 'Z', 'Alpha']

const iterator = generations.entries()

console.log(iterator.next().value)

// [0, 'X']

        
        
          
        
      

Как пишется

Скопировано

Array.entries() не имеет аргументов.

Array.entries() возвращает новый объект-итератор, реализующий протокол перебора массива. При выполнении перебора для каждого элемента коллекции возвращается массив, содержащий индекс элемента в исходном массиве, и его значение.

Как понять

Скопировано

Метод entries() работает схожим образом с методом values(), но позволяет получить для каждого элемента индекс и значение.

Array.entries() не нужно путать со статическим методом Object.entries(), который возвращает массив пар индекс / значение перечисляемых свойств объекта.

Подсказки

Скопировано

💡 Если массив имеет незаполненные элементы, то объект-итератор, созданный при вызове entries(), вернёт при обходе undefined как значение для всех незаполненных элементов:

        
          
          const words = [, 'этот', 'тот']for (const [index, value] of words.entries()) {  console.log(index, value)}// 0 undefined// 1 этот// 2 тот
          const words = [, 'этот', 'тот']

for (const [index, value] of words.entries()) {
  console.log(index, value)
}
// 0 undefined
// 1 этот
// 2 тот