JavaScript - Método de filtro de matriz ()
Descripción
Matriz de JavaScript filter() El método crea una nueva matriz con todos los elementos que pasan la prueba implementada por la función proporcionada.
Sintaxis
Su sintaxis es la siguiente:
array.filter(callback[, thisObject]);
Detalles de los parámetros
callback - Función para probar cada elemento de la matriz.
thisObject - Objeto para usar como this al ejecutar la devolución de llamada.
Valor devuelto
Devuelve la matriz creada.
Compatibilidad
Este método es una extensión de JavaScript del estándar ECMA-262; como tal, puede que no esté presente en otras implementaciones del estándar. Para que funcione, debe agregar el siguiente código en la parte superior de su secuencia de comandos.
if (!Array.prototype.filter) {
Array.prototype.filter = function(fun /*, thisp*/) {
var len = this.length;
if (typeof fun != "function")
throw new TypeError();
var res = new Array();
var thisp = arguments[1];
for (var i = 0; i < len; i++) {
if (i in this) {
var val = this[i]; // in case fun mutates this
if (fun.call(thisp, val, i, this))
res.push(val);
}
}
return res;
};
}
Ejemplo
Pruebe el siguiente ejemplo.
<html>
<head>
<title>JavaScript Array filter Method</title>
</head>
<body>
<script type = "text/javascript">
if (!Array.prototype.filter) {
Array.prototype.filter = function(fun /*, thisp*/) {
var len = this.length;
if (typeof fun != "function")
throw new TypeError();
var res = new Array();
var thisp = arguments[1];
for (var i = 0; i < len; i++) {
if (i in this) {
var val = this[i]; // in case fun mutates this
if (fun.call(thisp, val, i, this))
res.push(val);
}
}
return res;
};
}
function isBigEnough(element, index, array) {
return (element >= 10);
}
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
document.write("Filtered Value : " + filtered );
</script>
</body>
</html>
Salida
Filtered Value : 12,130,44