Complementando, tem um caso em que o uso de find
pode ser ambíguo. Como ele retorna undefined
caso não seja encontrado nenhum elemento, o que acontece se o array contém undefined
?
Exemplo:
var array = [1, 2, undefined];
var result = array.find(n => isNaN(n));
console.log(result); // undefined
array = [1, 2, 3];
result = array.find(n => isNaN(n));
console.log(result); // undefined
Neste caso eu não tenho como diferenciar um caso não encontrado de um no qual o array de fato contém undefined
.
Nesta situação, uma opção é usar findIndex
, que retorna o índice do elemento, ou -1
caso nenhum seja encontrado. Veja a diferença:
var array = [1, 2, undefined];
var result = array.findIndex(n => isNaN(n));
console.log(result); // 2
array = [1, 2, 3];
result = array.findIndex(n => isNaN(n));
console.log(result); // -1