[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex [Back]  [Original]

Array.prototype.findIndex() - JavaScript | MDN

Esta pgina foi traduzida do ingls pela comunidade. Saiba mais e junte-se comunidade MDN Web Docs.

View in English Always switch to English

Array.prototype.findIndex()

Baseline Widely available

This feature is well established and works across many devices and browser versions. Its been available across browsers since setembro de 2015.

O mtodo findIndex() retorna o ndice no array do primeiro elemento que satisfizer a funo de teste provida. Caso contrrio, retorna -1, indicando que nenhum elemento passou no teste.

Veja tambm o mtodo find(), que retorna o valor de um elemento encontrado no array em vez de seu ndice.

In this article

Sintaxe

arr.findIndex(callback[, thisArg])

Parmetros

callback

Funo para executar em cada valor no array, tomando trs argumentos:

element

O elemento atual sendo processado no array.

index

O ndice do elemento atual sendo processado no array.

array

O array sobre o qual findIndex foi chamado.

thisArg

Opcional. Objeto para usar como this na execuo do callback.

Descrio

O mtodo findIndex executa a funo callback uma vez para cada elemento presente no array at encontrar um onde o callback retorna um valor verdadeiro. Se tal elemento for encontrado, findIndex imediatamente retorna o ndice deste elemento. Caso contrrio, findIndex retorna -1. callback invocado apenas para ndices no array que tm valores atribudos; nunca invocado para ndices que foram deletados ou que nunca tiveram valores atribudos.

callback invocado com trs argumentos: o valor do elemento, o ndice do elemento e o objeto Array sendo percorrido.

Se um parmetro thisArg for fornecido para findIndex, ele ser usado como o this para cada invocao do callback. Se no for fornecido, ento undefined usado.

findIndex no modifica o array sobre o qual chamado.

A srie de elementos processados por findIndex definida antes da primeira invocao do callback. Elementos que so adicionados ao array depois que a chamada a findIndex comea no sero visitados pelo callback. Se um elemento existente no visitado do array for modificado pelo callback, seu valor passado ao callback ser o valor no momento em que findIndex visitar o ndice deste elemento; elementos que forem deletados no so visitados.

Exemplos

Encontrar o ndice de um nmero primo em um array

O seguinte exemplo encontra o ndice de um elemento no array que um nmero primo (ou retorna -1 se no houver nmero primo).

js
function isPrime(element, index, array) {
  var start = 2;
  while (start <= Math.sqrt(element)) {
    if (element % start++ < 1) {
      return false;
    }
  }
  return element > 1;
}

console.log([4, 6, 8, 12].findIndex(isPrime)); // -1, no encontrado
console.log([4, 6, 7, 12].findIndex(isPrime)); // 2

Polyfill

Esse mtodo foi adicionado especificao do ECMAScript 6 e pode no estar disponvel em todas as implementaes de JavaScript ainda. Contudo, voc pode fazer o polyfill de Array.prototype.findIndex com o seguinte trecho de cdigo:

js
if (!Array.prototype.findIndex) {
  Array.prototype.findIndex = function (predicate) {
    if (this === null) {
      throw new TypeError(
        "Array.prototype.findIndex called on null or undefined",
      );
    }
    if (typeof predicate !== "function") {
      throw new TypeError("predicate must be a function");
    }
    var list = Object(this);
    var length = list.length >>> 0;
    var thisArg = arguments[1];
    var value;

    for (var i = 0; i < length; i++) {
      value = list[i];
      if (predicate.call(thisArg, value, i, list)) {
        return i;
      }
    }
    return -1;
  };
}

Especificaes

Specification
ECMAScript 2027 LanguageSpecification
# sec-array.prototype.findindex

Compatibilidade com navegadores


Web Proxy Viewer  |  New URL  |  Original Page