Lo que encontré, es que la principal diferencia es por los parámetros en cada una:
Array.prototype.indexOf() : espera un valor como primer parámetro. Esto la hace como buena opción para encontrar el índice en arreglos de tipo primitivo(string, number, or boolean).
ejemplo:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");
// resultado: 2
Array.prototype.findIndex() : espera una llamada de retorno (callback) como primer parámetro. Usarla si se necesita el índice en arreglos con tipo no primitivos (objects) o si la condición encontrada es más compleja que un solo valor.
ejemplo:
var ages = [3, 10, 18, 20];
function checkAdult(age) {
return age >= 18;
}
function myFunction() {
document.getElementById("demo").innerHTML =
ages.findIndex(checkAdult);
}
// resultado: 2
Array.prototype.indexOf() : espera un valor como primer parámetro. Esto la hace como buena opción para encontrar el índice en arreglos de tipo primitivo(string, number, or boolean).
ejemplo:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");
// resultado: 2
Array.prototype.findIndex() : espera una llamada de retorno (callback) como primer parámetro. Usarla si se necesita el índice en arreglos con tipo no primitivos (objects) o si la condición encontrada es más compleja que un solo valor.
ejemplo:
var ages = [3, 10, 18, 20];
function checkAdult(age) {
return age >= 18;
}
function myFunction() {
document.getElementById("demo").innerHTML =
ages.findIndex(checkAdult);
}
// resultado: 2