JavaScript: método Array map ()
Descripción
Matriz de JavaScript map() El método crea una nueva matriz con los resultados de llamar a una función proporcionada en cada elemento de esta matriz.
Sintaxis
Su sintaxis es la siguiente:
array.map(callback[, thisObject]);
Detalles de los parámetros
callback - Función que produce un elemento del nuevo Array a partir de un elemento del actual.
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.map) {
Array.prototype.map = function(fun /*, thisp*/) {
var len = this.length;
if (typeof fun != "function")
throw new TypeError();
var res = new Array(len);
var thisp = arguments[1];
for (var i = 0; i < len; i++) {
if (i in this)
res[i] = fun.call(thisp, this[i], i, this);
}
return res;
};
}
Ejemplo
Pruebe el siguiente ejemplo.
<html>
<head>
<title>JavaScript Array map Method</title>
</head>
<body>
<script type = "text/javascript">
if (!Array.prototype.map) {
Array.prototype.map = function(fun /*, thisp*/) {
var len = this.length;
if (typeof fun != "function")
throw new TypeError();
var res = new Array(len);
var thisp = arguments[1];
for (var i = 0; i < len; i++) {
if (i in this)
res[i] = fun.call(thisp, this[i], i, this);
}
return res;
};
}
var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
document.write("roots is : " + roots );
</script>
</body>
</html>
Salida
roots is : 1,2,3