Array.prototype.at()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022.
O método at()
recebe um valor inteiro e retorna o item referente ao index dele, permitindo valores positivos ou negativos. Valores negativos contam apartir do último item do array.
Isto não quer dizer que exista alguma coisa errada em utilizar a notação com colchetes. Por exemplo array[0]
retornaria o primeiro item. Porém ao invés de utilizar o array.length
para os últimos items; e.g array[array.length-1]
para o último item, você pode utilizar o array.at(-1)
. (Veja os exemplos abaixo)
Experimente
Sintaxe
at(index);
Parâmetros
index
-
O index (posição) do elemento do array que será retornado. Quando um valor negativo é passado como argumento a contagem dos elementos é feita de trás para frente.
Valor retornado
O elemento correspondente ao index passado como argumento. Retorna undefined
se o index passado não for encontrado.
Exemplos
Retornando o último item de um array
O exemplo a seguir exibe uma função que retorna o último elemento encontrado de um array específico.
// O array com items
const cart = ["apple", "banana", "pear"];
// A função que retorna o último item do array passado como argumento
function returnLast(arr) {
return arr.at(-1);
}
// Pega o último item do array 'cart'
const item1 = returnLast(cart);
console.log(item1); // 'pear'
// Adiciona um item ao array 'cart'
cart.push("orange");
const item2 = returnLast(cart);
console.log(item2); // 'orange'
Comparando métodos
Este exemplo compara as diferentes maneiras de selecionar o penúltimo item de um Array
.
Todos os métodos abaixos são válidos, mas este exemplo destaca a sucintez e legibilidade do método at()
.
// O array com items
const colors = ["red", "green", "blue"];
// Usando a propriedade length
const lengthWay = colors[colors.length - 2];
console.log(lengthWay); // 'green'
// Usando o método slice(). Perceba que um array é retornado
const sliceWay = colors.slice(-2, -1);
console.log(sliceWay[0]); // 'green'
// Usando o método at()
const atWay = colors.at(-2);
console.log(atWay); // 'green'
Especificações
Specification |
---|
ECMAScript Language Specification # sec-array.prototype.at |
Compatibilidade com navegadores
BCD tables only load in the browser
Veja também
- Um polyfill do método
Array.prototype.at
está disponível emcore-js
- Um polyfill para o método at().
Array.prototype.find()
– retorna um valor baseado no teste fornecido.Array.prototype.includes()
– verifica se um valor existe em um array.Array.prototype.indexOf()
– retorna o index de um determinado elemento.