Tobias123 Posted July 12, 2022 at 04:00 AM Report Share #626411 Posted July 12, 2022 at 04:00 AM Boas, estou completamente bloqueado neste exercício e não consigo mesmo pensar em nada, espero que me consigam ajudar <Hacking Task #3> One of your accomplices was able to physically steal a hard drive from one of fSociety's targets, however the victim had safeguards in place and was able to corrupt the data on the disk. Now back in the arcade you have been tasked with recovering the jumbled data, which is central to fSociety's next big play. You can leave the data on the disk as it is , but you should be able to copy it to a new hard drive, and be able to print it. Instructions Copy the uncorrupted data in the array stored in targetDisk to the empty array newDisk (corrupted data looks like this: ø). Then print the contents of the disk to the terminal as a string. To complete this task remember the arrays' methods we have learned so far. e depois tenho o seguinte código var targetDisk = [ 'E', 'ø', '-', 'C', 'ø', 'o', 'r', 'ø', 'ø', 'p', '\'', 'ø', 's', ' ', 'E', 'v', 'ø', 'i', 'ø', 'ø', 'l']; var newDisk = []; var corruptionSymbol = 'ø'; alguem consegue dar uma ajuda ? Agora, Tobias123 disse: Boas, estou completamente bloqueado neste exercício e não consigo mesmo pensar em nada, espero que me consigam ajudar <Hacking Task #3> One of your accomplices was able to physically steal a hard drive from one of fSociety's targets, however the victim had safeguards in place and was able to corrupt the data on the disk. Now back in the arcade you have been tasked with recovering the jumbled data, which is central to fSociety's next big play. You can leave the data on the disk as it is , but you should be able to copy it to a new hard drive, and be able to print it. Instructions Copy the uncorrupted data in the array stored in targetDisk to the empty array newDisk (corrupted data looks like this: ø). Then print the contents of the disk to the terminal as a string. To complete this task remember the arrays' methods we have learned so far. e depois tenho o seguinte código var targetDisk = [ 'E', 'ø', '-', 'C', 'ø', 'o', 'r', 'ø', 'ø', 'p', '\'', 'ø', 's', ' ', 'E', 'v', 'ø', 'i', 'ø', 'ø', 'l']; var newDisk = []; var corruptionSymbol = 'ø'; alguem consegue dar uma ajuda ? Link to comment Share on other sites More sharing options...
Zex Posted July 12, 2022 at 08:22 AM Report Share #626412 Posted July 12, 2022 at 08:22 AM (edited) Traduzido para português fica assim: 1 - Pegar nos caracteres de targetDisk diferentes de corruptionSymbol e acrescentá-los em newDisk. 2 - Pegar no array newDisk e criar uma string com os caracteres do array 3 - Imprimir a string no ecran. Começa por fazer o programa da parte 1. Edited July 12, 2022 at 08:22 AM by Zex Link to comment Share on other sites More sharing options...
jsWizard Posted July 12, 2022 at 10:10 AM Report Share #626414 Posted July 12, 2022 at 10:10 AM newDisk = targetDisk.filter(function(value){ return value !== corruptionSymbol; }); alert(newDisk.join('')); Link to comment Share on other sites More sharing options...
PaulomCapelo Posted July 15, 2022 at 12:00 AM Report Share #626457 Posted July 15, 2022 at 12:00 AM (edited) Boa noite a todos! Estou com o mesmo problema. Sou o mais noob que podem imaginar. Se me puderem ajudar agradeço. Se fizer como o Zex disse, seria fácil demais, ou então não entendi bem. Se for isso, eles não aceitam, porque temos que usar os conhecimentos anteriores. var targetDisk = [ 'E', 'ø', '-', 'C', 'ø', 'o', 'r', 'ø', 'ø', 'p', '\'', 'ø', 's', ' ', 'E', 'v', 'ø', 'i', 'ø', 'ø', 'l']; var newDisk = [ 'E', '_', 'C', 'o', 'r', 'p', '\'', 's', ' ', 'E', 'v', 'i', 'l']; var corruptionSymbol = 'ø'; newDisk = ('E_Corp\s Evil'); console.log(newDisk); Output: >>>>Code is incorrect Your code is not up to fSociety standards, keep trying to improve it E_Corps Evil Se fizer o código que o jsWizard sugeriu, dá um output de código errado. Possivelmente porque ainda não chegámos ao "filter" e ao "return value". Ou só estou a dizer asneira... <var targetDisk = [ 'E', 'ø', '-', 'C', 'ø', 'o', 'r', 'ø', 'ø', 'p', '\'', 'ø', 's', ' ', 'E', 'v', 'ø', 'i', 'ø', 'ø', 'l']; var newDisk = [ 'E', '_', 'C', 'o', 'r', 'p', '\'', 's', ' ', 'E', 'v', 'i', 'l']; var corruptionSymbol = 'ø'; newDisk = targetDisk.filter(function(value) {return value !== corruptionSymbol; });alert(newDisk.join(' ')); console.log(newDisk);> O output é: >>>>Code is incorrect Your code is not up to fSociety standards, keep trying to improve it alert is not defined Bem, vou fazer um turno de 26 horas e já volto. Obrigado! Edited July 17, 2022 at 06:56 PM by PaulomCapelo Alerta Link to comment Share on other sites More sharing options...
Zex Posted July 15, 2022 at 08:52 AM Report Share #626460 Posted July 15, 2022 at 08:52 AM 12 horas atrás, PaulomCapelo disse: var targetDisk = [ 'E', 'ø', '-', 'C', 'ø', 'o', 'r', 'ø', 'ø', 'p', '\'', 'ø', 's', ' ', 'E', 'v', 'ø', 'i', 'ø', 'ø', 'l']; var newDisk = [ 'E', '_', 'C', 'o', 'r', 'p', '\'', 's', ' ', 'E', 'v', 'i', 'l']; Isto é para funcionar com quaisquer dados. Por isso, o array newDisk tem que ser preenchido a partir do targetDisk com um ciclo FOR testando SE os caracteres são diferentes do corruptionSymbol . Link to comment Share on other sites More sharing options...
Ivo Vicente Posted July 16, 2022 at 09:38 AM Report Share #626475 Posted July 16, 2022 at 09:38 AM O código do @jsWizard faz o esperado da maneira mais limpa e atual O alert is not defined penso que seja a base do erro, pelo menos nessa mensagem, não é filter nem o return Em principio resolve se trocares a linha alert(newDisk.join('')); por console.log(newDisk.join('')); E removes o teu console.log(newDisk); porque aí estas a imprimir o array e não a string como é pedido no desafio. Se não resolver, tens que dizer que métodos de trabalhar arrays aprendeste. Feito é melhor que perfeito Link to comment Share on other sites More sharing options...
PaulomCapelo Posted July 17, 2022 at 06:57 PM Report Share #626477 Posted July 17, 2022 at 06:57 PM Entendi. Tentei fazer o que me disseram, mas parece que j alguém o fez por mim. Link to comment Share on other sites More sharing options...
Ivo Vicente Posted July 18, 2022 at 09:46 PM Report Share #626500 Posted July 18, 2022 at 09:46 PM Isso quer dizer que percebeste o erro, o assunto está fechado? Feito é melhor que perfeito Link to comment Share on other sites More sharing options...
PaulomCapelo Posted July 19, 2022 at 05:26 PM Report Share #626509 Posted July 19, 2022 at 05:26 PM 19 horas atrás, Ivo Vicente disse: Isso quer dizer que percebeste o erro, o assunto está fechado? Estava a responder ao moderador que me chamou à atenção por não ter inserido o código na mensagem de forma correcta. De qualquer das formas, sim, este exercício está encerrado. Fiz um loop como me foi indicado e usei apenas métodos de trabalhar arrays que aprendi até agora. O output foi: >>>>Code is correct Task Completed E-Corp's Evil Muito obrigado a todos os que ajudaram! Link to comment Share on other sites More sharing options...
jsWizard Posted July 20, 2022 at 08:41 AM Report Share #626511 Posted July 20, 2022 at 08:41 AM @PaulomCapelo se isto foi uma tentativa de resolver o problema: newDisk = ('E_Corp\s Evil'); então dedica-te à pesca porque para programador não tens cabeça 😄 😄 Em relação ao código que eu coloquei: newDisk = targetDisk.filter(function(value){ return value !== corruptionSymbol; }); alert(newDisk.join('')); não era suposto fazeres copy-paste do código e siga.. o que eu esperava era que fosses explorar a documentação dos métodos .filter e .join .. aprendesses algo.. e depois sim fazias o copy-paste com a adaptação necessária.. tu não viste que o erro era do alert ? achas que eu sabia que não era um simples alert que querias e que querias um console.log ? para terminar.. se queres ser programador, tens de explorar o código.. entender/aprender.. não é com copy-paste às cegas que chegas lá (se é que chegas). https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join 1 Report Link to comment Share on other sites More sharing options...
PaulomCapelo Posted July 21, 2022 at 12:13 AM Report Share #626524 Posted July 21, 2022 at 12:13 AM 15 horas atrás, jsWizard disse: @PaulomCapelo se isto foi uma tentativa de resolver o problema: newDisk = ('E_Corp\s Evil'); então dedica-te à pesca porque para programador não tens cabeça 😄 😄 Em relação ao código que eu coloquei: newDisk = targetDisk.filter(function(value){ return value !== corruptionSymbol; }); alert(newDisk.join('')); não era suposto fazeres copy-paste do código e siga.. o que eu esperava era que fosses explorar a documentação dos métodos .filter e .join .. aprendesses algo.. e depois sim fazias o copy-paste com a adaptação necessária.. tu não viste que o erro era do alert ? achas que eu sabia que não era um simples alert que querias e que querias um console.log ? para terminar.. se queres ser programador, tens de explorar o código.. entender/aprender.. não é com copy-paste às cegas que chegas lá (se é que chegas). https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join Boas @jsWizard, Gostei do comentário. É assim que se incentiva quem está a prender. (Não estou a ser irónico). Estou nisto há cerca de dois meses, mas como trabalho 13 horas/dia por dois dias e folgo outros dois, pode-se dizer que é um mês. Nunca tinha visto código na minha vida. Não sei se te lembras quando tinhas um mês de aprendizagem de código. Quando chego a casa, após 13h de trabalho a atender pessoas, não tenho cabeça para isto, como deves calcular. O meu código não foi copy/paste, nem podia ser. Ainda não me foram dadas a conhecer funções que tinhas no teu código, por isso tive que pesquisar e puxar pela cabeça, para ver onde estava o erro e consegui. Posso não vir a ser o melhor, mas vou conseguir! O meu código foi este: var targetDisk = [ 'E', 'ø', '-', 'C', 'ø', 'o', 'r', 'ø', 'ø', 'p', '\'', 'ø', 's', ' ', 'E', 'v', 'ø', 'i', 'ø', 'ø', 'l']; var newDisk = [ 'E', '-', 'C', 'o', 'r', 'p', '\'', 's', ' ', 'E', 'v', 'i', 'l']; var corruptionSymbol = 'ø'; for(var i = 21; i < targetDisk.length; i++) {newDisk.push (targetDisk[i]);} var i = newDisk.join(''); console.log(i); Continua a dar-me na cabeça, que eu agradeço...porque vou voltar de certeza 😁 Para ti, um bem haja. Link to comment Share on other sites More sharing options...
Popular Post Ivo Vicente Posted July 23, 2022 at 01:44 PM Popular Post Report Share #626547 Posted July 23, 2022 at 01:44 PM (edited) @PaulomCapelo programar é aprender todos os dias, eu já o faço à 17 anos, e todos os dias aprendo mais e sinto que sei pouco. Importa não desistir, continuar a treinar, mas acima de tudo, compreender. A tua solução foi uma pequena "trafulhice", que num projeto sério nunca podia ser usado, aliás, se o array targetDisk tivesse 100 letras? 1000? ou mesmo fosse todos um ficheiro de texto? como resolvias? Deixo-te uma adaptação da tua tentativa de resolução do desafio com comentários, que espero te possam ser uteis e ajudar no teu desafio. // Dados a limpar var targetDisk = [ 'E', 'ø', '-', 'C', 'ø', 'o', 'r', 'ø', 'ø', 'p', '\'', 'ø', 's', ' ', 'E', 'v', 'ø', 'i', 'ø', 'ø', 'l']; // Simbolo de corrupção var corruptionSymbol = 'ø'; // Vai guardar apenas os caracteres bons var newDisk = []; // O ciclo FOR estava quase bem construido, mas: // - para iterares um array começa do 0 // - para terminar a iteração validaste com < foi bem pois os arrays são index zero // - i++ serve de somador para avançar na posição do array «targetDisk» for(var i = 0; i < targetDisk.length; i++){ // Validação do caractere de corrupção // Que neste caso o mais simples é validar não pela igualdade (==) mas pela diferença (!=) if(targetDisk[i] !== corruptionSymbol){ // A posição testada é um bom caractere, adiciona no array de caracteres bons newDisk.push(targetDisk[i]); } } // Nome de variaveis que façam sentido i,j,k só mesmo para dentro de loops // Não se paga pelo tamanho do nomes das variaveis var newDiskToString = newDisk.join(''); console.log(newDiskToString); Edited July 23, 2022 at 01:49 PM by Ivo Vicente 1 2 Report Feito é melhor que perfeito Link to comment Share on other sites More sharing options...
PaulomCapelo Posted July 23, 2022 at 07:48 PM Report Share #626548 Posted July 23, 2022 at 07:48 PM @Ivo Vicente muito obrigado pela explicação! Entendi perfeitamente o que disseste. O meu código resultou para este teste simples e porque foi fácil contar, mas de facto seria impraticável para um projeto mais complexo/sério. Não fiz "batota" a pensar que estava a fazer. Simplesmente foi a solução que encontrei. Testei o teu código, não que duvidasse, mas para praticar mais um pouco. Até me admiro como é que deixaram passar o meu código, porque qualquer pormenor tem sido barrado com ">>>>Code is incorrect". O que acho bem! Link to comment Share on other sites More sharing options...
jsWizard Posted July 25, 2022 at 10:31 AM Report Share #626554 Posted July 25, 2022 at 10:31 AM On 7/21/2022 at 2:13 AM, PaulomCapelo said: Posso não vir a ser o melhor, mas vou conseguir! esta é a atitude certa! já é um bom começo 😉 "ser o melhor" é algo que não existe.. ser paciente, persistente, dedicado, ter uma mente curiosa.. isto são coisas que com o tempo te podem levar a ser bom! boa sorte! On 7/21/2022 at 2:13 AM, PaulomCapelo said: Não sei se te lembras quando tinhas um mês de aprendizagem de código. lembro.. foi há cerca de 27 anos 😄 pascal num ecrã azul e javascript no notepad 😄 😄 (sem contar com o Basic que fazia no Spectrum 128k.. isso já foi em 1987/88..) ou seja.. estou a ficar velho 😄 😄 😄 Link to comment Share on other sites More sharing options...
PaulomCapelo Posted August 2, 2022 at 10:37 AM Report Share #626656 Posted August 2, 2022 at 10:37 AM Em 25/07/2022 às 11:31, jsWizard disse: esta é a atitude certa! já é um bom começo 😉 "ser o melhor" é algo que não existe.. ser paciente, persistente, dedicado, ter uma mente curiosa.. isto são coisas que com o tempo te podem levar a ser bom! boa sorte! lembro.. foi há cerca de 27 anos 😄 pascal num ecrã azul e javascript no notepad 😄 😄 (sem contar com o Basic que fazia no Spectrum 128k.. isso já foi em 1987/88..) ou seja.. estou a ficar velho 😄 😄 😄 Obrigado @jsWizard, Posso dizer-te que, apesar de estar a responder só agora (de propósito para poder dar esta notícia), contribuíste bastante com as tuas palavras, para eu alcançar o meu primeiro objectivo. Passei todos os exercícios que me vão levar ao workshop. Vamos ver como corre. Quanto a estares a ficar velho, esquece isso. A velhice está na mente. Um dia vamos morrer, mas podemos morrer novos, com 90 anos ou mais 😉👍 Obrigado a todos! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now