docs.rodeo

MDN Web Docs mirror

Array.prototype.at()

{{JSRef}} 

The at() method of {{jsxref("Array")}}  instances takes an integer value and returns the item at that index, allowing for positive and negative integers. Negative integers count back from the last item in the array.

{{InteractiveExample("JavaScript Demo: Array.at()")}} 

const array1 = [5, 12, 8, 130, 44];

let index = 2;

console.log(`An index of ${index} returns ${array1.at(index)}`);
// Expected output: "An index of 2 returns 8"

index = -2;

console.log(`An index of ${index} returns ${array1.at(index)}`);
// Expected output: "An index of -2 returns 130"

Syntax

at(index)

Parameters

Return value

The element in the array matching the given index. Always returns {{jsxref("undefined")}}  if index < -array.length or index >= array.length without attempting to access the corresponding property.

Description

The at() method is equivalent to the bracket notation when index is a non-negative integer. For example, array[0] and array.at(0) both return the first item. However, when counting elements from the end of the array, you cannot use array[-1] like you may in Python or R, because all values inside the square brackets are treated literally as string properties, so you will end up reading array["-1"], which is just a normal string property instead of an array index.

The usual practice is to access {{jsxref("Array/length", "length")}}  and calculate the index from that — for example, array[array.length - 1]. The at() method allows relative indexing, so this can be shortened to array.at(-1).

By combining at() with {{jsxref("Array/with", "with()")}} , you can both read and write (respectively) an array using negative indices.

The at() method is generic. It only expects the this value to have a length property and integer-keyed properties.

Examples

Return the last value of an array

The following example provides a function which returns the last element found in a specified array.

// Our array with items
const cart = ["apple", "banana", "pear"];

// A function which returns the last item of a given array
function returnLast(arr) {
  return arr.at(-1);
}

// Get the last item of our array 'cart'
const item1 = returnLast(cart);
console.log(item1); // 'pear'

// Add an item to our 'cart' array
cart.push("orange");
const item2 = returnLast(cart);
console.log(item2); // 'orange'

Comparing methods

This example compares different ways to select the penultimate (last but one) item of an {{jsxref("Array")}} . While all the methods shown below are valid, this example highlights the succinctness and readability of the at() method.

// Our array with items
const colors = ["red", "green", "blue"];

// Using length property
const lengthWay = colors[colors.length - 2];
console.log(lengthWay); // 'green'

// Using slice() method. Note an array is returned
const sliceWay = colors.slice(-2, -1);
console.log(sliceWay[0]); // 'green'

// Using at() method
const atWay = colors.at(-2);
console.log(atWay); // 'green'

Calling at() on non-array objects

The at() method reads the length property of this and calculates the index to access.

const arrayLike = {
  length: 2,
  0: "a",
  1: "b",
  2: "c", // ignored by at() since length is 2
};
console.log(Array.prototype.at.call(arrayLike, 0)); // "a"
console.log(Array.prototype.at.call(arrayLike, 2)); // undefined

Specifications

{{Specifications}} 

Browser compatibility

{{Compat}} 

See also

In this article

View on MDN