Skip to content

metodos de array

con los ultimos avances de javascript hay nuevos metodos para recorrer array tanto para lectura escritura de nuevos arrays y de agregar y eliminar siempre y cuando el array se queda intacto en el caso de usar metodos de inmutabilidad, en otos casos hay metodos mutables entre todos esos metodos se encuetra lo siguiente:

js
const fruits = ['Apple', 'Banana']; // array base equivalente new Array

/*
  Array.from()
  Crea una nueva Arrayinstancia a partir de un objeto iterable o 
  similar a una matriz.
*/
fruits.from(fruit);

/*
  Array.isArray()
  Devuelve truesi el argumento es una matriz o de otro modo false.
*/
fruits.isarray(fruits); // true

/*
  Array.of()
  Crea una nueva Arrayinstancia con un número variable de argumentos,
  independientemente del número o tipo de argumentos.
*/
fruits.of(1);

/*
  Array.length
  Refleja el número de elementos de una matriz.
*/
fruits.length; // 2

/*
  Array.concat()
  Devuelve una nueva matriz que es esta matriz unida con otras 
  matrices y / o valores.
*/
const array2 = ['d', 'e', 'f'];
const array3 = fruits.concat(array2)
console.log(array3) // ["Apple", "Banana", "d", "e", "f"]

/*
  Array.copywithin()
  Copia una secuencia de elementos de la matriz dentro de la matriz.
*/
const array1 = ['a', 'b', 'c', 'd', 'e'];

// copy to index 0 the element at index 3
console.log(array1.copyWithin(0, 3, 4)); // expected output: Array ["d", "b", "c", "d", "e"]

/*
  Array.entries()
  Devuelve un nuevo objeto iterador de matriz que contiene los pares 
  clave / valor para cada índice de la matriz.
*/
const array1 = ['a', 'b', 'c'];

const iterator1 = array1.entries();

console.log(iterator1.next().value);
// expected output: Array [0, "a"]

console.log(iterator1.next().value);
// expected output: Array [1, "b"]

/*
  Array.every()
  Devuelve truesi cada elemento de esta matriz satisface la función de prueba.
*/
const isBelowThreshold = (currentValue) => currentValue < 40;

const array1 = [1, 30, 39, 29, 10, 13];

console.log(array1.every(isBelowThreshold)); // expected output: true

/*
  Array.fill()
  Rellena todos los elementos de una matriz desde un índice inicial 
  hasta un índice final con un valor estático.
*/
const array1 = [1, 2, 3, 4];

// fill with 0 from position 2 until position 4
console.log(array1.fill(0, 2, 4));
// expected output: [1, 2, 0, 0]

/*
  Array.filter()
  Devuelve una nueva matriz que contiene todos los elementos de la matriz 
  de llamada para la que devuelve la función de filtrado proporcionada true.
*/
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];

const result = words.filter(word => word.length > 6);

console.log(result);
// expected output: Array ["exuberant", "destruction", "present"]

/*
  Array.find()
  Devuelve lo encontrado elementen la matriz, si algún elemento de la matriz 
  satisface la función de prueba o undefinedsi no se encuentra.
*/
const array1 = [5, 12, 8, 130, 44];

const found = array1.find(element => element > 10);

console.log(found);
// expected output: 12

/*
  Array.findIndex()
  Devuelve el índice encontrado en la matriz, si un elemento de la matriz
  satisface la función de prueba o -1si no se encuentra.
*/
const array1 = [5, 12, 8, 130, 44];

const isLargeNumber = (element) => element > 13;

console.log(array1.findIndex(isLargeNumber));
// expected output: 3

/*
  Array.flat()
  Devuelve una nueva matriz con todos los elementos de la submatriz 
  concatenados en ella de forma recursiva hasta la profundidad especificada.
*/
const arr1 = [0, 1, 2, [3, 4]];

console.log(arr1.flat());
// expected output: [0, 1, 2, 3, 4]

const arr2 = [0, 1, 2, [[[3, 4]]]];

console.log(arr2.flat(2));
// expected output: [0, 1, 2, [3, 4]]

/*
  Array.flatMap()
  Devuelve una nueva matriz formada al aplicar una función de devolución de 
  llamada determinada a cada elemento de la matriz y luego aplanar el 
  resultado en un nivel.
*/
const arr = [1, 2, 3, 4];

arr.flatMap(x => [x, x * 2]);
// is equivalent to
arr.reduce((acc, x) => acc.concat([x, x * 2]), []);
// [1, 2, 2, 4, 3, 6, 4, 8]

/*
  Array.forEach()
  Llama a una función para cada elemento de la matriz.
  una alternativa al for clasico recuerda el for normal no el ciclo for...or
*/
const items = ['item1', 'item2', 'item3']
const copyItems = []

// before
for (let i = 0; i < items.length; i++) {
  copyItems.push(items[i])
}

// after
items.forEach(function(item){
  copyItems.push(item)
})

/*
  Array.includes()
  Determina si la matriz contiene un valor, devuelto trueo falsesegún 
  corresponda.
*/
let arr = ['a', 'b', 'c']

arr.includes('c', 3)    // false
arr.includes('c', 100)  // false

/*
  Array.indexOf()
  Devuelve el primer (mínimo) índice de un elemento dentro de la matriz igual 
  a un elemento, o -1si no se encuentra ninguno.
*/
let array = [2, 9, 9];
array.indexOf(2);     // 0

/*
  Array.join()
  Une todos los elementos de una matriz en una cadena.
*/
let a = ['Wind', 'Water', 'Fire'];
a.join();      // 'Wind,Water,Fire'
a.join(', ');  // 'Wind, Water, Fire'
a.join(' + '); // 'Wind + Water + Fire'
a.join('');    // 'WindWaterFire'

/*
  Array.keys()
  Devuelve un nuevo iterador de matriz que contiene las claves para cada 
  índice de la matriz.
*/
let arr = ['a', , 'c'];
let sparseKeys = Object.keys(arr);
let denseKeys = [...arr.keys()];
console.log(sparseKeys); // ['0', '2']
console.log(denseKeys);  // [0, 1, 2]

/*
  Array.lastIndexOf()
  Devuelve el último (mayor) índice de un elemento dentro de la matriz igual 
  a un elemento, o -1si no se encuentra ninguno.
*/
let numbers = [2, 5, 9, 2];
numbers.lastIndexOf(2);     // 3

/*
  Array.map()
  Devuelve una nueva matriz que contiene los resultados de llamar a una 
  función en cada elemento de esta matriz.
*/
let numbers = [1, 4, 9]
let roots = numbers.map((num) => Math.sqrt(num))
// roots is now     [1, 2, 3]
// numbers is still [1, 4, 9]

/*
  Array.pop()
  Elimina el último elemento de una matriz y devuelve ese elemento.
*/
let myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];

let popped = myFish.pop();

console.log(myFish); // ['angel', 'clown', 'mandarin' ]

console.log(popped); // 'sturgeon'

/*
  Array.push()
  Agrega uno o más elementos al final de una matriz y devuelve el nuevo 
  length de la matriz.
*/
let sports = ['soccer', 'baseball']
let total = sports.push('football', 'swimming')

console.log(sports)  // ['soccer', 'baseball', 'football', 'swimming']
console.log(total)   // 4

/*
  Array.reduce()
  Aplique una función contra un acumulador y cada valor de la matriz (de 
  izquierda a derecha) para reducirlo a un solo valor.
*/
[0, 1, 2, 3, 4].reduce((previousValue, currentValue, currentIndex, array) => previousValue + currentValue)

/*
  Array.reduceRight()
  Aplique una función contra un acumulador y cada valor de la matriz 
  (de derecha a izquierda) para reducirlo a un solo valor.
*/
[0, 1, 2, 3, 4].reduceRight((accumulator, currentValue, index, array) => accumulator + currentValue);

/*
  Array.reverse()
  Invierte el orden de los elementos de una matriz en su lugar. 
  (El primero se convierte en el último, el último en el primero).
*/
const a = [1, 2, 3];

console.log(a); // [1, 2, 3]

a.reverse();

console.log(a); // [3, 2, 1]

/*
  Array.shift()
  Elimina el primer elemento de una matriz y devuelve ese elemento.
*/
const myFish = ['angel', 'clown', 'mandarin', 'surgeon'];

console.log('myFish before:', JSON.stringify(myFish));
// myFish before: ['angel', 'clown', 'mandarin', 'surgeon']

const shifted = myFish.shift();

console.log('myFish after:', myFish);
// myFish after: ['clown', 'mandarin', 'surgeon']

console.log('Removed this element:', shifted);
// Removed this element: angel

/*
  Array.slice()
  Extrae una sección de la matriz de llamada y devuelve una nueva matriz.
*/
let fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']
let citrus = fruits.slice(1, 3)

// fruits contains ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']
// citrus contains ['Orange','Lemon']

/*
  Array.some()
  Devuelve true si al menos un elemento de esta matriz satisface la función 
  de prueba proporcionada.
*/
[2, 5, 8, 1, 4].some(x => x > 10);  // false
[12, 5, 8, 1, 4].some(x => x > 10); // true

/*
  Array.sort()
  Ordena los elementos de una matriz en su lugar y devuelve la matriz.
*/
let numbers = [4, 2, 5, 1, 3];
numbers.sort((a, b) => a - b);
console.log(numbers);

// [1, 2, 3, 4, 5]

/*
  Array.splice()
  Agrega y / o elimina elementos de una matriz.
*/
let myFish = ['angel', 'clown', 'mandarin', 'sturgeon']
let removed = myFish.splice(2, 0, 'drum', 'guitar')

// myFish is ["angel", "clown", "drum", "guitar", "mandarin", "sturgeon"]
// removed is [], no elements removed

/*
  Array.toLocaleString()
  Devuelve una cadena localizada que representa la matriz y sus elementos. 
  Anula el método Object.prototype.toLocaleString().
*/
var prices = ['¥7', 500, 8123, 12];
prices.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' });

// "¥7,¥500,¥8,123,¥12"

/*
  Array.toString()
  Devuelve una cadena que representa la matriz y sus elementos. 
  Anula el método Object.prototype.toString().
*/
const array1 = [1, 2, 'a', '1a'];

console.log(array1.toString());
// expected output: "1,2,a,1a"

/*
  Array.unshift()
  Agrega uno o más elementos al frente de una matriz y devuelve el nuevo 
  length de la matriz.
*/
let arr = [4, 5, 6]

arr.unshift(1, 2, 3)
console.log(arr);
// [1, 2, 3, 4, 5, 6]

/*
  Array.values()
  Devuelve un nuevo objeto iterador de matriz que contiene los valores de 
  cada índice de la matriz.
*/
var arr = ['a', 'b', 'c', 'd', 'e'];
var iterator = arr.values();

for (let letter of iterator) {
  console.log(letter);
}  //"a" "b" "c" "d" "e"
const fruits = ['Apple', 'Banana']; // array base equivalente new Array

/*
  Array.from()
  Crea una nueva Arrayinstancia a partir de un objeto iterable o 
  similar a una matriz.
*/
fruits.from(fruit);

/*
  Array.isArray()
  Devuelve truesi el argumento es una matriz o de otro modo false.
*/
fruits.isarray(fruits); // true

/*
  Array.of()
  Crea una nueva Arrayinstancia con un número variable de argumentos,
  independientemente del número o tipo de argumentos.
*/
fruits.of(1);

/*
  Array.length
  Refleja el número de elementos de una matriz.
*/
fruits.length; // 2

/*
  Array.concat()
  Devuelve una nueva matriz que es esta matriz unida con otras 
  matrices y / o valores.
*/
const array2 = ['d', 'e', 'f'];
const array3 = fruits.concat(array2)
console.log(array3) // ["Apple", "Banana", "d", "e", "f"]

/*
  Array.copywithin()
  Copia una secuencia de elementos de la matriz dentro de la matriz.
*/
const array1 = ['a', 'b', 'c', 'd', 'e'];

// copy to index 0 the element at index 3
console.log(array1.copyWithin(0, 3, 4)); // expected output: Array ["d", "b", "c", "d", "e"]

/*
  Array.entries()
  Devuelve un nuevo objeto iterador de matriz que contiene los pares 
  clave / valor para cada índice de la matriz.
*/
const array1 = ['a', 'b', 'c'];

const iterator1 = array1.entries();

console.log(iterator1.next().value);
// expected output: Array [0, "a"]

console.log(iterator1.next().value);
// expected output: Array [1, "b"]

/*
  Array.every()
  Devuelve truesi cada elemento de esta matriz satisface la función de prueba.
*/
const isBelowThreshold = (currentValue) => currentValue < 40;

const array1 = [1, 30, 39, 29, 10, 13];

console.log(array1.every(isBelowThreshold)); // expected output: true

/*
  Array.fill()
  Rellena todos los elementos de una matriz desde un índice inicial 
  hasta un índice final con un valor estático.
*/
const array1 = [1, 2, 3, 4];

// fill with 0 from position 2 until position 4
console.log(array1.fill(0, 2, 4));
// expected output: [1, 2, 0, 0]

/*
  Array.filter()
  Devuelve una nueva matriz que contiene todos los elementos de la matriz 
  de llamada para la que devuelve la función de filtrado proporcionada true.
*/
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];

const result = words.filter(word => word.length > 6);

console.log(result);
// expected output: Array ["exuberant", "destruction", "present"]

/*
  Array.find()
  Devuelve lo encontrado elementen la matriz, si algún elemento de la matriz 
  satisface la función de prueba o undefinedsi no se encuentra.
*/
const array1 = [5, 12, 8, 130, 44];

const found = array1.find(element => element > 10);

console.log(found);
// expected output: 12

/*
  Array.findIndex()
  Devuelve el índice encontrado en la matriz, si un elemento de la matriz
  satisface la función de prueba o -1si no se encuentra.
*/
const array1 = [5, 12, 8, 130, 44];

const isLargeNumber = (element) => element > 13;

console.log(array1.findIndex(isLargeNumber));
// expected output: 3

/*
  Array.flat()
  Devuelve una nueva matriz con todos los elementos de la submatriz 
  concatenados en ella de forma recursiva hasta la profundidad especificada.
*/
const arr1 = [0, 1, 2, [3, 4]];

console.log(arr1.flat());
// expected output: [0, 1, 2, 3, 4]

const arr2 = [0, 1, 2, [[[3, 4]]]];

console.log(arr2.flat(2));
// expected output: [0, 1, 2, [3, 4]]

/*
  Array.flatMap()
  Devuelve una nueva matriz formada al aplicar una función de devolución de 
  llamada determinada a cada elemento de la matriz y luego aplanar el 
  resultado en un nivel.
*/
const arr = [1, 2, 3, 4];

arr.flatMap(x => [x, x * 2]);
// is equivalent to
arr.reduce((acc, x) => acc.concat([x, x * 2]), []);
// [1, 2, 2, 4, 3, 6, 4, 8]

/*
  Array.forEach()
  Llama a una función para cada elemento de la matriz.
  una alternativa al for clasico recuerda el for normal no el ciclo for...or
*/
const items = ['item1', 'item2', 'item3']
const copyItems = []

// before
for (let i = 0; i < items.length; i++) {
  copyItems.push(items[i])
}

// after
items.forEach(function(item){
  copyItems.push(item)
})

/*
  Array.includes()
  Determina si la matriz contiene un valor, devuelto trueo falsesegún 
  corresponda.
*/
let arr = ['a', 'b', 'c']

arr.includes('c', 3)    // false
arr.includes('c', 100)  // false

/*
  Array.indexOf()
  Devuelve el primer (mínimo) índice de un elemento dentro de la matriz igual 
  a un elemento, o -1si no se encuentra ninguno.
*/
let array = [2, 9, 9];
array.indexOf(2);     // 0

/*
  Array.join()
  Une todos los elementos de una matriz en una cadena.
*/
let a = ['Wind', 'Water', 'Fire'];
a.join();      // 'Wind,Water,Fire'
a.join(', ');  // 'Wind, Water, Fire'
a.join(' + '); // 'Wind + Water + Fire'
a.join('');    // 'WindWaterFire'

/*
  Array.keys()
  Devuelve un nuevo iterador de matriz que contiene las claves para cada 
  índice de la matriz.
*/
let arr = ['a', , 'c'];
let sparseKeys = Object.keys(arr);
let denseKeys = [...arr.keys()];
console.log(sparseKeys); // ['0', '2']
console.log(denseKeys);  // [0, 1, 2]

/*
  Array.lastIndexOf()
  Devuelve el último (mayor) índice de un elemento dentro de la matriz igual 
  a un elemento, o -1si no se encuentra ninguno.
*/
let numbers = [2, 5, 9, 2];
numbers.lastIndexOf(2);     // 3

/*
  Array.map()
  Devuelve una nueva matriz que contiene los resultados de llamar a una 
  función en cada elemento de esta matriz.
*/
let numbers = [1, 4, 9]
let roots = numbers.map((num) => Math.sqrt(num))
// roots is now     [1, 2, 3]
// numbers is still [1, 4, 9]

/*
  Array.pop()
  Elimina el último elemento de una matriz y devuelve ese elemento.
*/
let myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];

let popped = myFish.pop();

console.log(myFish); // ['angel', 'clown', 'mandarin' ]

console.log(popped); // 'sturgeon'

/*
  Array.push()
  Agrega uno o más elementos al final de una matriz y devuelve el nuevo 
  length de la matriz.
*/
let sports = ['soccer', 'baseball']
let total = sports.push('football', 'swimming')

console.log(sports)  // ['soccer', 'baseball', 'football', 'swimming']
console.log(total)   // 4

/*
  Array.reduce()
  Aplique una función contra un acumulador y cada valor de la matriz (de 
  izquierda a derecha) para reducirlo a un solo valor.
*/
[0, 1, 2, 3, 4].reduce((previousValue, currentValue, currentIndex, array) => previousValue + currentValue)

/*
  Array.reduceRight()
  Aplique una función contra un acumulador y cada valor de la matriz 
  (de derecha a izquierda) para reducirlo a un solo valor.
*/
[0, 1, 2, 3, 4].reduceRight((accumulator, currentValue, index, array) => accumulator + currentValue);

/*
  Array.reverse()
  Invierte el orden de los elementos de una matriz en su lugar. 
  (El primero se convierte en el último, el último en el primero).
*/
const a = [1, 2, 3];

console.log(a); // [1, 2, 3]

a.reverse();

console.log(a); // [3, 2, 1]

/*
  Array.shift()
  Elimina el primer elemento de una matriz y devuelve ese elemento.
*/
const myFish = ['angel', 'clown', 'mandarin', 'surgeon'];

console.log('myFish before:', JSON.stringify(myFish));
// myFish before: ['angel', 'clown', 'mandarin', 'surgeon']

const shifted = myFish.shift();

console.log('myFish after:', myFish);
// myFish after: ['clown', 'mandarin', 'surgeon']

console.log('Removed this element:', shifted);
// Removed this element: angel

/*
  Array.slice()
  Extrae una sección de la matriz de llamada y devuelve una nueva matriz.
*/
let fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']
let citrus = fruits.slice(1, 3)

// fruits contains ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']
// citrus contains ['Orange','Lemon']

/*
  Array.some()
  Devuelve true si al menos un elemento de esta matriz satisface la función 
  de prueba proporcionada.
*/
[2, 5, 8, 1, 4].some(x => x > 10);  // false
[12, 5, 8, 1, 4].some(x => x > 10); // true

/*
  Array.sort()
  Ordena los elementos de una matriz en su lugar y devuelve la matriz.
*/
let numbers = [4, 2, 5, 1, 3];
numbers.sort((a, b) => a - b);
console.log(numbers);

// [1, 2, 3, 4, 5]

/*
  Array.splice()
  Agrega y / o elimina elementos de una matriz.
*/
let myFish = ['angel', 'clown', 'mandarin', 'sturgeon']
let removed = myFish.splice(2, 0, 'drum', 'guitar')

// myFish is ["angel", "clown", "drum", "guitar", "mandarin", "sturgeon"]
// removed is [], no elements removed

/*
  Array.toLocaleString()
  Devuelve una cadena localizada que representa la matriz y sus elementos. 
  Anula el método Object.prototype.toLocaleString().
*/
var prices = ['¥7', 500, 8123, 12];
prices.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' });

// "¥7,¥500,¥8,123,¥12"

/*
  Array.toString()
  Devuelve una cadena que representa la matriz y sus elementos. 
  Anula el método Object.prototype.toString().
*/
const array1 = [1, 2, 'a', '1a'];

console.log(array1.toString());
// expected output: "1,2,a,1a"

/*
  Array.unshift()
  Agrega uno o más elementos al frente de una matriz y devuelve el nuevo 
  length de la matriz.
*/
let arr = [4, 5, 6]

arr.unshift(1, 2, 3)
console.log(arr);
// [1, 2, 3, 4, 5, 6]

/*
  Array.values()
  Devuelve un nuevo objeto iterador de matriz que contiene los valores de 
  cada índice de la matriz.
*/
var arr = ['a', 'b', 'c', 'd', 'e'];
var iterator = arr.values();

for (let letter of iterator) {
  console.log(letter);
}  //"a" "b" "c" "d" "e"

lanzado bajo la licencia CC-BY-NC-SA