BRParola
8/21/2019 - 1:04 AM

array-methods

/*
    concat: 
        Concatena dois arrays em um só. O array concatenado é o retorno da .concat()
*/

arr = [1,2,3]; 
arr2 = [4,5,6]; 

arr = arr.concat(arr2); 

/*
    slice: 
        Retorna um array a partir de um indice especifico
*/

arr = [1,2,3]; 
arr = arr.splice(1); // arr => [2,3]; 

/*
    splice: 
        Insere elementos no meio do array || Remove elementos de uma posição especifica
        .slice(initialIndex, elementsToRemove, ...elementsToAdd); 

        Adiciona sempre numa posição anterior ao indice selecionado
*/

arr = [1,2,4]; 
arr.splice(1,0,10,11) // arr => [1,10,11,2,4]; 
arr.splice(1,2) // arr => [1,2,4]; 

/*
    every: 
        Itera o array enquanto não tiver um retorno falso; 
*/

arr = [1,3,4]; 
arr.every( ele => {
    if (!(ele % 2)) 
        return false; 
    return true; 
}); // => false  

/*
    join: 
        Cria uma string com todos os elementos do array separados 
        por um delimitador (O delimitador default é ',')
*/

arr = [1,3,4]; 
const strArr = arr.join(' '); 

/*
    some: 
        Itera enquanto não ouver um retorno true
*/

arr = [1,2,3]; 
arr.some( (ele, index) => {
    if (!(ele % 2))
        return true; 
}); // => true; 

/*
    sort: 
        Ordena os arrays por ordem alfabetica ||
        crescente || utilizando uma funcao

        Recebe no callback dois parametros, o elemento
        e o proximo elemento. Retorne utilizando uma condição
*/

arr3 = [1,2,3]; 
arr3.sort( (a, b) => {
    return (a > b) ? a : b; 
}) // arr => [3,2,1]; 

arr = ['fabricio', 'mateus', 'amadeu']; 

/*
    Iterator: 

    .entries() => retorna chave e valor 
    .keys() => retorna as chaves
    .values() => retorna os valores 
*/

const arr = [1,2,3]; 

const aKeys = arr.entries(); 

for (let keyNow = aKeys.next(); !keyNow.done; keyNow = aKeys.next()) {
    console.log(keyNow); 
} 

/*
    Array.from(): 
        Clona o Array e pode retornar um valor 
        para cada elemento utilizando uma funcao
*/

arr = [1,2,3];
arr2 = Array.from(arr); // => [1,2,3]; 

arr2 = Array.from(arr, element => {
    return (element % 2 === 0) ? true : false; 
}) // => [false, true, false]; 

/*
    copyWithin(startIndex, startCopy, endCopy): 
        Copia os elementos de determinados indices de um array para outros indices. 
*/

arr = [1,2,3,4]; 
arr.copyWithin(1, 3); // => [ 1, 4, 3, 4 ]

/*
    .sort() -> 
        Ordena naturalmente de forma léxica (alfabética); 

        Para ordenar de forma crescente o array passar uma 
        função com retorno true => .sort( () => true)

*/

arr = [12,5,10,10,4,7,3,2,1]; 
arr = arr.sort( (a,b) => {
    return b - a; // decrescente
    // return a - b; // crecente 
}); 

// Ordenando objetos: 

const ana = {name: "Ana", age: 19}; 
const joao = {name: "Joao", age: 31}; 
const mateus = {name: "Mateus", age: 27}; 

let listaDePessoas = [ana, joao, mateus]; 
listaDePessoas = listaDePessoas.sort( (a, b) => {
    return a.age - b.age; 
}); 

// Ordenar strings: 

const names = ["ana", "Ana", 'joao', "Joao"]; 
names.sort((a, b) => a.localeCompare(b)); // Compara enxergando acentos e maiusculas; 

// Arrays typados; 

const arrayTypado = new Int8Array(10);