.at()

Метод для возврата элемента массива по указанному индексу.

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

Кратко

Скопировано

Метод at() возвращает значение элемента массива по указанному индексу. Индекс может быть как положительным, так и отрицательным. Отрицательный индекс используется для отсчёта от последнего элемента массива.

Пример

Скопировано

Получим последний элемент массива:

        
          
          const beatles = ['Джон', 'Пол', 'Джордж', 'Ринго']console.log(beatles.at(3))// Ринго
          const beatles = ['Джон', 'Пол', 'Джордж', 'Ринго']

console.log(beatles.at(3))
// Ринго

        
        
          
        
      

Получим последний элемент массива, используя отрицательный индекс:

        
          
          const beatles = ['Джон', 'Пол', 'Джордж', 'Ринго']console.log(beatles.at(-1))// Ринго
          const beatles = ['Джон', 'Пол', 'Джордж', 'Ринго']

console.log(beatles.at(-1))
// Ринго

        
        
          
        
      

Как пишется

Скопировано

Array.at() принимает один аргумент — индекс искомого элемента в массиве.

Индекс элемента может быть:

  • положительный — для доступа к элементам от начала массива. Например, 0 — индекс первого элемента;
  • отрицательный — для доступа к элементам с конца массива. Например, -1 — индекс последнего элемента, -2 — предпоследнего и т. д.

Array.at() возвращает значение элемента.

Как понять

Скопировано

Обычно для получения значения элемента массива по индексу используется скобочная запись:

        
          
          const elements = ['ветер', 'туман', 'и', 'снег']console.log(elements[1])// туман
          const elements = ['ветер', 'туман', 'и', 'снег']

console.log(elements[1])
// туман

        
        
          
        
      

В случае, когда индекс элемента положительный, метод at() соответствует применению скобочной записи:

        
          
          const elements = ['ветер', 'туман', 'и', 'снег']console.log(elements.at(1) === elements[1])// true
          const elements = ['ветер', 'туман', 'и', 'снег']

console.log(elements.at(1) === elements[1])
// true

        
        
          
        
      

Однако для получения последнего элемента массива скобочная запись может быть неудобной, если неизвестен индекс элемента от начала массива. Получаем последний элемент, используя традиционный подход:

        
          
          const hobbits = ['Фродо', 'Сэм', 'Перегрин', 'Бильбо']const lastIndex = hobbits.length - 1console.log(hobbits[lastIndex])// Бильбо
          const hobbits = ['Фродо', 'Сэм', 'Перегрин', 'Бильбо']

const lastIndex = hobbits.length - 1

console.log(hobbits[lastIndex])
// Бильбо

        
        
          
        
      

В этом случае предпочтительнее использовать метод at(), который поддерживает отрицательные индексы для отсчёта от последнего элемента массива. Получаем последний элемент массива:

        
          
          const hobbits = ['Фродо', 'Сэм', 'Перегрин', 'Бильбо']console.log(hobbits.at(-1))// Бильбо
          const hobbits = ['Фродо', 'Сэм', 'Перегрин', 'Бильбо']

console.log(hobbits.at(-1))
// Бильбо

        
        
          
        
      

Поддержка метода at() в основных браузерах и в Node.js появилась сравнительно недавно. Например, попытка использовать at() в Node.js v.14.18.3 приведёт к ошибке:

        
          
          const array = ['ночь','улица','фонарь']try {  console.log(array.at(4))} catch (err) {  console.log('Поймали ошибку! Вот она: ', err.message)}// Поймали ошибку! Вот она: array.at is not a function
          const array = ['ночь','улица','фонарь']
try {
  console.log(array.at(4))
} catch (err) {
  console.log('Поймали ошибку! Вот она: ', err.message)
}
// Поймали ошибку! Вот она: array.at is not a function

        
        
          
        
      
Поддержка в браузерах:
  • Chrome 92, поддерживается
  • Edge 92, поддерживается
  • Firefox 90, поддерживается
  • Safari 15.4, поддерживается
О Baseline