Arrays: crear
Un objeto de tipo Array puede instanciarse con el operador new, como cualquier otro objeto, o incluso mediante una expresión en la que se asigne un valor a cada elemento del array.
También existen otros métodos no estáticos del objeto que permiten crear copias de arrays, completos o partes, que pueden usarse como formas de crear arrays.
Este objeto dos métodos estáticos utilizados específicamente para instanciar un nuevo objeto de tipo Array:
- Array.of(n): crea un array con los elementos indicados en el argumento
- Array.from(obj): cea el array a partir de los componentes de un objeto iterable.
El primer método no necesita más explicaciones, crea un array cuyos items son la lista de elmentos que se le han pasado al método como argumento. Es muy similar a crearlo desde una expresión.
var lista = Array.of(1,4,'lago',1900);
console.log(lista) ;
var lista2 = new Array(1,4,'lago',1900);
console.log(lista2) ;
Ambas listas on iguales. Pero eso no significa que este método sea equivalente al oeprador new. Mira este ejemplo y comprueba como la primera lista es un array con un elemento de valor 8, pero la segunda es un array con 8 items vacios
var lista = Array.of(8);
console.log(lista) ;
var lista2 = new Array(8);
console.log(lista2) ;
El segundo método Array.from() es algo más complejo. Tiene un argumento obligado y dos opcionales.
- Objeto origen iterable de donde se obtienen los items del array que se va a crear
- función Map que se ejecuta con cada valor antes de incorporarlo al array creado
- Valor opcional de de this para la función Map. Lo normal es que se refiera al objeto origen, pero puede cambiarse
Este método es bueno para situaciones que requieran un procesamiento inicial de los datos. Ahorra un poco de código. Supongamos que queremos crear un array con los 7 primeros numeros pares
var lista = [1,2,3,4,5,6,7];
var pares;
var filtro = function(v){ return 2*v};
pares = Array.from(lista, filtro);
console.log(pares)
El funcionamiento es simple, es un ciclo que recorre el objeto origen ldesde el que se contruye el array
- Lee el elemento del objeto origen,
- La función map toma el valor leído devuelve el doble (par)
- Almacenar el valor en el array creado