From b4f7dd3e8dd5b19988cb99c0eb67a43b45788589 Mon Sep 17 00:00:00 2001 From: Felipe Volpe de Freitas Date: Sat, 13 Dec 2025 19:32:44 -0300 Subject: [PATCH] Challenge-16 --- challenge-16/challenge-16.js | 200 +++++++++++++++++++++++------------ challenge-16/index.html | 10 ++ 2 files changed, 140 insertions(+), 70 deletions(-) create mode 100644 challenge-16/index.html diff --git a/challenge-16/challenge-16.js b/challenge-16/challenge-16.js index e6c7be198b..63c7717261 100644 --- a/challenge-16/challenge-16.js +++ b/challenge-16/challenge-16.js @@ -1,70 +1,130 @@ -/* -1. Envolva todo o conteúdo desse desafio em uma IIFE. -2. Adicione a diretiva 'use strict'; -3. Crie um arquivo index.html e adicione esse script à ele. -*/ - -/* -Declare uma variável chamada `name` que receba seu primeiro nome. -Mostre no console todas as letras do seu nome separadas, com a frase: -- "[LETRA] é a [POSIÇÃO]ª letra do meu nome." -Ex: no caso do nome ser "Fernando", deve mostrar as frases: -- "F é a 1ª letra do meu nome." -- "e é a 2ª letra do meu nome." -E assim por diante, até a última. -*/ -console.log( 'As letras do seu nome:' ); -// ? - -/* -- Declare uma variável chamada `fullName`, que receba seu nome completo, -escrito no formato de slug (caixa baixa e palavras separadas por um traço). -Ex: o nome "Fernando Daciuk" ficaria "fernando-daciuk" -- Faça a primeira letra de cada nome ficar em caixa alta, e troque o traço -por um espaço. -- Detalhe: o código que você escrever abaixo deve funcionar para qualquer -nome, então fique à vontade para usar as artimanhas que já viu até agora no -curso para fazer isso funcionar corretamente :) -- Mostre no console o nome no formato slug, e o resultado final. Use um -console.log para cada formato. -*/ -console.log( '\nNome convertido à partir de um slug:' ); -// ? - -/* -- Crie um array com 5 nomes. Reduza esses nomes a uma única string, separando -cada nome por vírgula. Entre o penúltimo e o último nome, o separador deve -ser um "e". No final, concatene com a frase: " são meus amigos.". -O resultado final deve ficar mais ou menos assim: -- "João, Maria, Roberto, Pedro e Marcos são meus amigos." -- Detalhe: o código abaixo deve funcionar com um array de qualquer tamanho. -5 nomes foi somente uma sugestão ;) -*/ -console.log( '\nMeus amigos:' ); -// ? - -/* -Usando o replace(), faça a string "Roberto" virar "Roberta". -Mostre o resultado no console. -*/ -console.log( '\nEra "Roberto", agora é:' ); -// ? - -/* -Mostre no console a parte "nando" da string "Fernando". Use o método que -faz a busca do final para o início da string. -*/ -console.log( '\nParte de uma string:' ); -// ? - -/* -Declare uma variável chamada `myName`, que receba o seu primeiro nome, -escrito de forma natural. -Mostre no console esse nome, mas com as letras intercalando entre maiúsculas -e minúsculas. -- Detalhe: o código abaixo deve funcionar da mesma forma para qualquer nome, -de qualquer tamanho, escrito de qualquer forma. -Ex.: Nomes que deveriam funcionar: "Fernando", "RoBertO", "gabriEla", etc. -*/ -console.log( '\nNome com letras intercaladas entre caixa alta e baixa:' ); -// ? \ No newline at end of file +(function(){ + /* + 1. Envolva todo o conteúdo desse desafio em uma IIFE. + 2. Adicione a diretiva 'use strict'; + 3. Crie um arquivo index.html e adicione esse script à ele. + */ + 'use strict'; + + /* + Declare uma variável chamada `name` que receba seu primeiro nome. + Mostre no console todas as letras do seu nome separadas, com a frase: + - "[LETRA] é a [POSIÇÃO]ª letra do meu nome." + Ex: no caso do nome ser "Fernando", deve mostrar as frases: + - "F é a 1ª letra do meu nome." + - "e é a 2ª letra do meu nome." + E assim por diante, até a última. + */ + console.log( 'As letras do seu nome:' ); + var name = 'Felipe'; + for (var i = 0 ; i < name.length ; i++) { + console.log(name.charAt(i) + ' é a ' + (i + 1) + 'ª letra do meu nome.') + } + + /* + - Declare uma variável chamada `fullName`, que receba seu nome completo, + escrito no formato de slug (caixa baixa e palavras separadas por um traço). + Ex: o nome "Fernando Daciuk" ficaria "fernando-daciuk" + - Faça a primeira letra de cada nome ficar em caixa alta, e troque o traço + por um espaço. + - Detalhe: o código que você escrever abaixo deve funcionar para qualquer + nome, então fique à vontade para usar as artimanhas que já viu até agora no + curso para fazer isso funcionar corretamente :) + - Mostre no console o nome no formato slug, e o resultado final. Use um + console.log para cada formato. + */ + console.log( '\nNome convertido à partir de um slug:' ); + var fullName = 'felipe-freitas' + + + /* + Jeito que eu fiz: + + var nomeFinal = '' + var nomeSeparado = fullName.split('-') + for (var i = 0 ; i < nomeSeparado.length ; i++) { + nomeFinal = nomeFinal + nomeSeparado[i].charAt(0).toUpperCase() + nomeSeparado[i].slice(1) + if (i+1 < nomeSeparado.length) { + nomeFinal = nomeFinal + ' ' + } + } + + console.log(fullName) + console.log(nomeFinal) + */ + + var finalName = fullName.split('-').map(function(name){ + return name.charAt(0).toUpperCase() + name.slice(1) + }).join(' ') + + console.log(fullName) + console.log(finalName) + + + + /* + - Crie um array com 5 nomes. Reduza esses nomes a uma única string, separando + cada nome por vírgula. Entre o penúltimo e o último nome, o separador deve + ser um "e". No final, concatene com a frase: " são meus amigos.". + O resultado final deve ficar mais ou menos assim: + - "João, Maria, Roberto, Pedro e Marcos são meus amigos." + - Detalhe: o código abaixo deve funcionar com um array de qualquer tamanho. + 5 nomes foi somente uma sugestão ;) + */ + + console.log( '\nMeus amigos:' ); + + /* + Jeito que eu fiz: + + var nomes = ['Leonardo', 'Bruno', 'Jorge', 'Lucas', 'Dotz']; + + nomes = nomes.join(', ') + + var ultimoNome = nomes.slice(nomes.lastIndexOf(',')).replace(', ', ' e ') + + console.log(nomes.replace(nomes.slice(nomes.lastIndexOf(',')), ultimoNome) + ' são meus amigos.') + */ + + var friends = ['Leonardo', 'Bruno', 'Jorge', 'Lucas', 'Dotz']; + var phrase = friends.reduce(function(acumulado, atual, index){ + var separator = friends.length - 1 === index ? ' e ' : ', '; + return acumulado + separator + atual; + }).concat(' são meus amigos.') + + console.log(phrase) + + /* + Usando o replace(), faça a string "Roberto" virar "Roberta". + Mostre o resultado no console. + */ + console.log( '\nEra "Roberto", agora é:' ); + console.log('Roberto'.replace('to', 'ta')) + + + /* + Mostre no console a parte "nando" da string "Fernando". Use o método que + faz a busca do final para o início da string. + */ + console.log( '\nParte de uma string:' ); + console.log('Fernando'.substring(8, 3)) + + /* + Declare uma variável chamada `myName`, que receba o seu primeiro nome, + escrito de forma natural. + Mostre no console esse nome, mas com as letras intercalando entre maiúsculas + e minúsculas. + - Detalhe: o código abaixo deve funcionar da mesma forma para qualquer nome, + de qualquer tamanho, escrito de qualquer forma. + Ex.: Nomes que deveriam funcionar: "Fernando", "RoBertO", "gabriEla", etc. + */ + console.log( '\nNome com letras intercaladas entre caixa alta e baixa:' ); + var myName = 'Felipe' + console.log(myName) + var myNameMixed = [] + for (var i = 0; i < myName.length; i++) { + myNameMixed.push(i % 2 === 0 ? myName[i].toUpperCase() : myName[i].toLowerCase()) + } + console.log(myNameMixed.join('')) + +})(); \ No newline at end of file diff --git a/challenge-16/index.html b/challenge-16/index.html new file mode 100644 index 0000000000..0bf6576714 --- /dev/null +++ b/challenge-16/index.html @@ -0,0 +1,10 @@ + + + + + Desafio 16 + + + + + \ No newline at end of file