Arrays, Every, Filter, Some


Cómo usar Arrays

Crear un array y devolver la cantidad de elementos:
let frutas = ["Manzana", "Banana"];
console.log(frutas.length);
// 2

Acceder a un elemento de Array mediante su índice:
let primero = frutas[0];
// Manzana
let ultimo = frutas[frutas.length - 1];
// Banana

Recorrer un Array:
frutas.forEach(function(elemento, indice, array) {
    console.log(elemento, indice);
})
// Manzana 0
// Banana 1

Añadir un elemento al final de un Array:
let nuevaLongitud = frutas.push('Naranja'); // Añade "Naranja" al final
// ["Manzana", "Banana", "Naranja"]

Eliminar el último elemento de un Array:
let ultimo = frutas.pop(); // Elimina "Naranja" del final
// ["Manzana", "Banana"]

Añadir un elemento al principio de un Array:
let nuevaLongitud = frutas.unshift('Fresa'); // Añade "Fresa" al inicio
// ["Fresa" ,"Manzana", "Banana"]

Eliminar el primer elemento de un Array
let primero = frutas.shift(); // Elimina "Fresa" del inicio // ["Manzana", "Banana"]

Encontrar el índice de un elemento del Array y eliminarlo:
frutas.push('Pera');
// ["Manzana", "Banana", "Pera"]
let pos = frutas.indexOf('Banana'); // (pos) es la posición para abreviar
// 1
let elementoEliminado = frutas.splice(pos, 1);
// ["Manzana", "Pera"]

Splice

Eliminar varios elementos a partir de una posición y guardarlos en otro array:
Con .splice() no solo se puede eliminar elementos del array, si no que también podemos extraerlos guardándolos en un nuevo array.
Al hacer esto estaríamos modificando el array de origen.
let vegetales = ['Repollo', 'Coliflor', 'Zapallo', 'Zanahoria'];
console.log(vegetales);
// ["Repollo", "Coliflor", "Zapallo", "Zanahoria"]
let pos = 1, numElementos = 2;
let elementosEliminados = vegetales.splice(pos, numElementos);
// ["Coliflor", "Zapallo"] ==> Lo que se ha guardado en "elementosEliminados"
console.log(vegetales)
// ["Zapallo", "Zanahoria"] ==> Lo que actualmente tiene "vegetales"

Slice
Copiar un Array completo:
let copiaArray = vegetales.slice();
// ["Repollo", "Zanahoria"]; ==> Copiado en "copiaArray"

NOTA DE LA REDACCIÓN:
Con SPLICE() se MUEVEN elementos de un array a otro (elimina del array original, si así se requiere).
Con SLICE() se COPIAN elementos de un array a otro (no modifica el array original).


Misceláneas de arrays:
En JavaScript, las propiedades cuyo nombre comienza con un dígito no pueden referenciarse con la notación punto y debe accederse a ellas mediante la notación corchete.
Por ejemplo, dado un objeto con una propiedad de nombre '3d', sólo podría accederse a dicha propiedad con la notación corchete.
let decadas = [1950, 1960, 1970, 1980, 1990, 2000, 2010];
console.log(decadas.0); // error de sintaxis
console.log(decadas[0]); // funciona correctamente
renderizador.3d.usarTextura(modelo, 'personaje.png');
renderizador['3d'].usarTextura(modelo, 'personaje.png');

En el último ejemplo, ha sido necesario poner '3d' entre comillas. Es posible usar también comillas con los índices del los arrays de JavaScript (p. ej., decadas['2'] en vez de decadas[2]), aunque no es necesario.
El motor de JavaScript transforma en un string el 2 de decadas[2] a través de una conversión implícita mediante toString.
Por tanto, '2' y '02' harían referencia a dos posiciones diferentes en el objeto decadas, y el siguiente ejemplo podría dar true como resultado:
console.log(decadas['2'] != decadas['02']);



Every

El método every ejecuta una función callback dada una vez por cada elemento presente en el arreglo hasta encontrar uno que haga retornar un valor falso a callback (un valor que resulte falso cuando se convierta a booleano). Si no se encuentra tal elemento, el método every de inmediato retorna false. O si callback retorna verdadero para todos los elementos, every retornará true. callback es llamada sólo para índices del arreglo que tengan valores asignados; no se llama para índices que hayan sido eliminados o a los que no se les haya asignado un valor. callback es llamada con tres argumetos: el valor del elemento, el índice del elemento y el objeto Array que está siendo recorrido.

every no modifica el arreglo sobre el cual es llamado.

El siguiente ejemplo prueba si todos los elementos de un arreglo son mayores que 10.

function esGrande(elemento, indice, arrreglo) {
return elemento >= 10;
}
document.writeln([12, 5, 8, 130, 44].every(esGrande)); // false
document.writeln([12, 54, 18, 130, 44].every(esGrande)); // true

Resultado:

false
true

Usando arrow functions.
Las funciones flecha proveen una sintaxis más corta para la misma prueba.

[12, 5, 8, 130, 44].every(elem => elem >= 10); // false
[12, 54, 18, 130, 44].every(elem => elem >= 10); // true



Filter

filter() llama a la función callback sobre cada elemento del array, y construye un nuevo array con todos los valores para los cuales callback devuelve un valor verdadero.
callback se invoca con tres argumentos:

filter() no modifica el array sobre el cual es llamado.

Ejemplo
Filtrando todos los valores pequeños
El siguiente ejemplo usa filter() para crear un array filtrado que excluye todos los elementos con valores inferiores a 10.

function esGrande(elemento) {
return elemento >= 10;
}
var filtrados = [12, 5, 8, 130, 44].filter(esGrande);
// filtrados es [12, 130, 44]


El resultado es: 12,130,44



Some

some() ejecuta la función callback una vez por cada elemento presente en el array hasta que encuentre uno donde callback retorna un valor verdadero (true).
callback es invocada con tres argumentos:

some() no modifica el array con el cual fue llamada.

Ejemplos
Verificando el valor de los elementos de un array
El siguiente ejemplo verifica si algún elemento del array es mayor a 10.
function masquediez(element, index, array) {
return element > 10;
}
[2, 5, 8, 1, 4].some(masquediez); // false
[12, 5, 8, 1, 4].some(masquediez); // true

false
true