├── .gitignore ├── index.js ├── package.json ├── .github └── workflows │ └── publish.yml └── readme.md /.gitignore: -------------------------------------------------------------------------------- 1 | *.rb -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | function last() { 2 | return this.at(-1) 3 | } 4 | 5 | String.prototype.last = last 6 | Array.prototype.last = last -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "alura-challenge-js-last-evaldo", 3 | "version": "1.0.3", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC" 12 | } 13 | -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | name: Publish to NPM 2 | on: 3 | push: 4 | branches: [ main ] 5 | jobs: 6 | build: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - name: Checkout 10 | uses: actions/checkout@v2 11 | - name: Setup Node 12 | uses: actions/setup-node@v2 13 | with: 14 | node-version: '14.x' 15 | registry-url: 'https://registry.npmjs.org' 16 | - name: Publish package on NPM 📦 17 | run: npm publish 18 | env: 19 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Pacote Javascript Inspirado no Método last do Ruby 2 | 3 | O método last é uma funcionalidade da linguagem de programação Ruby, que é utilizado para obter o último elemento de uma coleção, como um array ou uma string. Ele retorna o último elemento da coleção sem modificar a própria coleção. 4 | 5 | ## Funcionamento do Método last do Ruby 6 | O método last é usado em coleções indexadas, como arrays ou strings. Seu funcionamento é bastante simples: 7 | 8 | Em arrays, o método last retorna o último elemento do array. 9 | Em strings, o método last retorna o último caractere da string. 10 | 11 | ## Criando o método last no JavaScript 12 | 13 | Adicionamos protótipo das classes Array e String em Javascript com um novo método chamado last. Esse método é inspirado no conceito do método last do Ruby e permite obter o último elemento de um array ou o último caractere de uma string. 14 | 15 | Vamos analisar o código passo a passo: 16 | 17 | ```js 18 | function last() { 19 | return this.at(-1); 20 | } 21 | ``` 22 | 23 | Nesta função, last, estamos definindo um novo método. O método at é usado com o índice -1 para obter o último elemento de um array ou o último caractere de uma string. A palavra-chave this é utilizada para referenciar o objeto que invocou o método. 24 | 25 | ```js 26 | Array.prototype.last = last; 27 | String.prototype.last = last; 28 | ``` 29 | 30 | Aqui, estamos estendendo o protótipo da classe Array e String adicionando o método last. Dessa forma, todas as instâncias de Array e String terão acesso a esse método. 31 | 32 | ```js 33 | let lista = ['js', 'java', 'python']; 34 | let nome = 'Gui'; 35 | 36 | console.log(nome.last()); // Saída: 'i' (último caractere da string 'Gui') 37 | console.log(lista.last()); // Saída: 'python' (último elemento do array 'lista') 38 | ``` 39 | 40 | Neste trecho do código, criamos uma lista de palavras e uma string. Em seguida, utilizamos o método last para obter o último caractere da string e o último elemento do array. Como resultado, o código imprime no console o caractere 'i' e o elemento 'python'. 41 | 42 | 43 | --------------------------------------------------------------------------------