| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/find | [Back] [Original] |
Get to know MDN better
Esta pgina ha sido traducida del ingls por la comunidad. Aprende ms y nete a la comunidad de MDN Web Docs.
This feature is well established and works across many devices and browser versions. Its been available across browsers since septiembre de 2015.
El mtodo find() devuelve el valor del primer elemento del array que cumple la funcin de prueba proporcionada.
const array1 = [5, 12, 8, 130, 44];
const found = array1.find((element) => element > 10);
console.log(found);
// Expected output: 12
findIndex().Array.prototype.indexOf(). (Es similar a findIndex(), pero comprueba la igualdad de cada elemento con el valor en lugar de usar una funcin de prueba.)Array.prototype.includes().Array.prototype.some().arr.find(callback(element[, index[, array]])[, thisArg])
callbackFuncin que se ejecuta sobre cada valor en el array, tomando tres argumentos:_ element
_ : El elemento actual que se est procesando en el array.
index OpcionalEl ndice (posicin) del elemento actual que se est procesando en el array.
array OpcionalEl array desde el que se llama al mtodo find.
thisArg OpcionalObjeto a usar como this cuando se ejecuta callback.
El valor del primer elemento del array que cumple la funcin de prueba proporcionada; de lo contrario, devuelve undefined.
El mtodo find ejecuta la funcin callback una vez por cada ndice del array hasta que encuentre uno en el que el callback devuelva un valor verdadero. Si es as, find devuelve inmediatamente el valor del elemento. En caso contrario, find devuelve undefined.
callback se invoca con tres argumentos: el valor del elemento, el ndice del elemento y el objeto Array que est siendo recorrido.
Si un parmetro thisArg es proporcionado al mtodo find, este ser utilizado como this para cada invocacin del callback. Si no se proporciona el parmetro, entonces se utiliza undefined.
El mtodo find no transforma el array desde el cual es llamado, pero la funcin proporcionada en callback s. En ese caso, los elementos procesados por find son establecidos antes de la primera invocacin de callback. Por lo tanto:
callback no visitar ningn elemento aadido al array despus de que comience la llamada a find.callback, su valor que se pasa al callback que lo visita ser el valor en el momento en que find visita ese ndice del elemento.deleted (eliminados) an se visitan.const inventario = [
{ nombre: "manzanas", cantidad: 2 },
{ nombre: "bananas", cantidad: 0 },
{ nombre: "cerezas", cantidad: 5 },
];
function esCereza(fruta) {
return fruta.nombre === "cerezas";
}
console.log(inventario.find(esCereza));
// { nombre: 'cerezas', cantidad: 5 }
const inventario = [
{ nombre: "manzanas", cantidad: 2 },
{ nombre: "bananas", cantidad: 0 },
{ nombre: "cerezas", cantidad: 5 },
];
const resultado = inventario.find((fruta) => fruta.nombre === "cerezas");
console.log(resultado); // { nombre: 'cerezas', cantidad: 5 }
El siguiente ejemplo encuentra un elemento en un array que sea un nmero primo (o devuelve undefined si no hay un nmero primo).
function isPrime(element, index, array) {
let start = 2;
while (start <= Math.sqrt(element)) {
if (element % start++ < 1) {
return false;
}
}
return element > 1;
}
console.log([4, 6, 8, 12].find(isPrime)); // undefined, no encontrado
console.log([4, 5, 8, 12].find(isPrime)); // 5
Los siguientes ejemplos muestran cmo elementos no existentes o eliminados son visitados y el valor pasado a callback es su valor cuando son visitados.
// Declarar un array sin elementos en los ndices 2, 3 y 4
const array = [0, 1, , , , 5, 6];
// Muestra todos los ndices, no slo aquellos que tienen valores asignados
array.find(function (value, index) {
console.log("Visited index " + index + " with value " + value);
});
// Mostrar todos los ndices, incluyendo los eliminados
array.find(function (value, index) {
// Eliminar el elemento 5 en la primera iteracin
if (index == 0) {
console.log("Deleting array[5] with value " + array[5]);
delete array[5];
}
// El elemento 5 se visita aun habiendo sido eliminado
console.log("Visited index " + index + " with value " + value);
});
// expected output:
// Deleting array[5] with value 5
// Visited index 0 with value 0
// Visited index 1 with value 1
// Visited index 2 with value undefined
// Visited index 3 with value undefined
// Visited index 4 with value undefined
// Visited index 5 with value undefined
// Visited index 6 with value 6
Este mtodo ha sido aadido a la espeficicacin ECMAScript 2015 y puede no estar disponible en todas las implementaciones de JavaScript an. Sin embargo, puedes utilizar el siguiente polyfill de Array.prototype.find:
// https://tc39.github.io/ecma262/#sec-array.prototype.find
if (!Array.prototype.find) {
Object.defineProperty(Array.prototype, "find", {
value: function (predicate) {
// 1. Let O be ? ToObject(this value).
if (this == null) {
throw new TypeError('"this" is null or not defined');
}
var o = Object(this);
// 2. Let len be ? ToLength(? Get(O, "length")).
var len = o.length >>> 0;
// 3. If IsCallable(predicate) is false, throw a TypeError exception.
if (typeof predicate !== "function") {
throw new TypeError("predicate must be a function");
}
// 4. If thisArg was supplied, let T be thisArg; else let T be undefined.
var thisArg = arguments[1];
// 5. Let k be 0.
var k = 0;
// 6. Repeat, while k < len
while (k < len) {
// a. Let Pk be ! ToString(k).
// b. Let kValue be ? Get(O, Pk).
// c. Let testResult be ToBoolean(? Call(predicate, T, kValue, k, O )).
// d. If testResult is true, return kValue.
var kValue = o[k];
if (predicate.call(thisArg, kValue, k, o)) {
return kValue;
}
// e. Increase k by 1.
k++;
}
// 7. Return undefined.
return undefined;
},
configurable: true,
writable: true,
});
}
Si necesitas dar soporte a motores de JavaScript realmente obsoletos que no soportan Object.defineProperty, es mejor no utilizar el polyfill para los mtodos Array.prototype, ya que no podrs hacerlos no enumerables.
| Specification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-array.prototype.find |
Array.prototype.findIndex() encuentra y devuelve un ndiceArray.prototype.includes() comprueba que un valor existe en el arrayArray.prototype.filter() elimina todos los elementos que no coincidanArray.prototype.every() comprueba todos los elementosArray.prototype.some() comprueba hasta que un elemento coincideThis page was last modified on 29 may 2026 by MDN contributors.
ArrayArray.prototype.at()Array.prototype.concat()Array.prototype.copyWithin()Array.prototype.entries()Array.prototype.every()Array.prototype.fill()Array.prototype.filter()Array.prototype.find()Array.prototype.findIndex()findLast()findLastIndex()Array.prototype.flat()Array.prototype.flatMap()Array.prototype.forEach()Array.prototype.includes()Array.prototype.indexOf()Array.prototype.join()Array.prototype.keys()Array.prototype.lastIndexOf()Array.prototype.map()Array.prototype.pop()Array.prototype.push()Array.prototype.reduce()Array.prototype.reduceRight()Array.prototype.reverse()Array.prototype.shift()Array.prototype.slice()Array.prototype.some()Array.prototype.sort()Array.prototype.splice()Array.prototype.toLocaleString()toReversed()Array.prototype.toSorted()toSpliced()Array.prototype.toString()Array.prototype.unshift()Array.prototype.values()with()Array.prototype[@@iterator]()Object/FunctionYour blueprint for a better internet.
Portions of this content are 19982026 by individual mozilla.org contributors. Content available under a Creative Commons license.
| Web Proxy Viewer | New URL | Original Page |