* [loop](#loop) * [Funções úteis](#uteis) * [Alterando um array](#alterar) * [Consulta num array](#consulta) * [Procura no array](#procura) ### <a name="loop"></a>loop ```javascript const array = ['dado1', 34, true, 'dado4'] for(let i = 0; i < array.length; i++) { console.log(array[i]) } for(const i in array) { console.log(array[i]) } for(let i of array) { console.log(array[i]) } // loop com elemento, índice e array completo array.forEach((elem, i, array) => { console.log(elem) }) ``` ### <a name="uteis"></a>Funções úteis *explicação dos parâmetros seguidos por ';'* #### <a name="alterar"></a>Alterando array ```javascript let array = [1, 2, 3, 4] // Copia elementos dentro de um array para ele mesmo sem alterar o índice // indíce para onde os elementos vão ser copiados; índice de começo; índice de término (senão copiará tudo) array.copyWithin(0, 2, 3) // [3, 4, 3, 4] // Adicionar elemento em um array de um índice à outro array.fill(5, 1, 3) // [3, 5, 5, 5] // Reverte a ordem dos elementos array.reverse() // [4, 3, 2, 1] // Ordena os elementos de acordo com o UNICODE // Se eu não achar legal posso passar uma função que faz o sort; array.sort(funcaoCriada(elem1, elem2)) // Altera dados dentro de um array e retorna os elementos removidos // índice de começo; quantidade de elementos removidos; elemento que entrará no meio array.splice(1, 0, 43) // [1, 43, 2, 3, 4] // Adiciona um ou mais elementos no fim do array e retorna novo length array.push(5, 6) // [1, 2, 3, 4, 5, 6] // Adiciona um ou mais elementos no começo do array e retorna novo length array.unshift(5, 6) // [5, 6, 1, 2, 3, 4] // Remove e retorna o primeiro elemento array.shift() // [2, 3, 4] // Remove e retorna o último elemento array.pop() // [1, 2, 3] ``` #### <a name="consulta"></a>Consultas no array ```javascript let array = [1, 2, 3, 4] let array2 = [4, 5] let array3 // Concatena elementos dentro do array ou até arrays com arrays array3 = array.concat(array2, 65) // [1, 2, 3, 4, 4, 5, 65] // Verifica se existe alguma ocorrência dentro do array let booleano = array.includes(3) // true // Adiciona uma string no meio dos elementos de um array e retorna uma string disso array3 = array.join() // '1,2,3,4' array3 = array.join('A') // '1A2A3A4' // Retorna uma cópia do array // começo, fim(opcional) array3 = array.slice(1, 2) // [2, 3] // Converte algo para string array3 = array.toString() // '1,2,3,4' array3 = 43.toString() // '43' // Converte algo para string (datas e pa) utilizando seus respectivos métodos array3 = array.toLocaleString() // '1,2,3,4' // Retorna primeiro índice da ocorrência e -1 em caso de erro // Elemento procurado; Começo da procura(opcional) array3 = [1, 2, 3, 4, 4, 5].indexOf(4, 0) // 3 // Retorna último índice da ocorrência e -1 em caso de erro. A procura começa de trás para frente // Elemento procurado; Começo da procura(opcional) array3 = [1, 2, 3, 4, 4, 5].lastIndexOf(2, 3) // 4 ``` #### <a name="procura"></a> Procura com loops ```javascript let array = [1, 2, 3, 4, 5] let teste // Loop normal // elemento(opcional); índice(opcional); array(opcional) // ^ Praticamente todos seguem esse fluxo dai de cima ^ array.forEach((elem, i, arrayIn) => {}) // Retorna um novo array de acordo com como eu mudar os elementos teste = array.map(elem => {return elem * 2}) // [2, 4, 6, 8, 10] // Executa uma função feita por mim // Elemento atual; Próximo elemento; index; array teste = array.reduce((elem, proxElem) => elem + proxElem) // 15 // Executa uma função feita por mim de trás para frente // Elemento atual; Elemento anterior; index; array teste = array.reduceRight((elem, elemAnterior) => elem + elemAnterior) // 15 // Retorna um array de arrays com chave(index) e valor(valor dele) teste = array.entries() // [[0, 1], [1, 2], [2, 3], [3, 4], [4, 5]] // Testa todos elementos de um array e retorna um booleano // Elemento atual; índice(opcional); array(pocional) teste = array.every(elem => {return elem >= 2}) // false // Testa para ver se existe um elemento de um array com a condicional e retorna um boolean teste = array.some(elem => {return elem >= 2}) // true // Retorna um novo array com todos elementos que passam na condiciona, em caso de erro retorna -1 teste = array.filter(elem => {return elem >= 2}) // [2, 3, 4, 5] // Retorna valor do primeiro elemento que satisfizer a condicional, em caso de erro retorna -1 teste = array.find(elem => {return elem >= 2}) // 2 // Retorna o índice do primeiro elemento que satisfizer a condicional, em caso de erro retorna -1 teste = array.findIndex(elem => {return elem >= 2}) // 1 // Retorna array de objetos com chave(index) teste = array.keys() // [0, 1, 2, 3, 4] // Retorna array com valores teste = array.values() // [1, 2, 3, 4, 5] // Retorna um ArrayIterator teste = array[Symbol.Iterator]() teste.next().value // 1 teste.next().value // 2 ... ```