[JavaScript] challenge - automatisch wachtwoord schrijven

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • KaasOmelet
  • Registratie: Oktober 2014
  • Laatst online: 17-03 22:25
Mijn vraag:
In de aanloop naar een JavaScript workshop van codeforall.io vraagt men om 59 JavaScript challenges op te lossen. De meest van de challenges zijn mij gelukt. Echter een aantal helaas niet. Waaronder deze:

<Hacking Task #1>
Now that you're no longer a total JavaScript n00bster, you can help Elliott and the fSociety crew with a little pet project. Security is paramount to this group of anarchist rebels. And someone has to make sure that their hideout is not compromised.

The password to enter the Arcade has to be kept secure, and it changes every day. The first seven characters change every week, while the last ones are updated every day. The daily password is generated by appending to the weekly password the consonants of the day of the week we are in.

You job is to create a piece of software that automatically updates the password every time a day goes by and print it.

Instructions

Having got the value of the weekly password stored in weeklyPass, update the value of currentPass depending on the day of the week we are in. To know which day of the week it is simply access weekDay.

Remember that updating the password is appending the letters corresponding to the consonants present in the name of the current day of the week.

There are many ways of cracking this problem, but Elliot and the guys specifically asked for you to use a switch statement...

Start informatie:
JavaScript:
1
2
3
4
5
var weeklyPass = 'darlene';
var weekDay = 'monday';
var currentPass;
// 'y' is a vowel in this case
// https://www.merriam-webster.com/words-at-play/why-y-is-sometimes-a-vowel-usage


Mijn oplossing:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
switch (weekDay) {
    case 'monday':
        console.log(currentPass = (weeklyPass+'mnd'));
        break;
    case 'tuesday':
       console.log(currentPass = (weeklyPass+'tsd'));
        break;
    case 'wednesday':
        console.log(currentPass = (weeklyPass+'wdnsd'));
        break;
    case 'thursday':
        console.log(currentPass = weeklyPass+'thrsd');
        break;
    case 'friday':
        console.log(currentPass = weeklyPass+'frd');
        break;
    case 'saturday':
        console.log(currentPass = weeklyPass+'strd');
        break;
    case 'sunday':
        console.log(currentPass = weeklyPass+'snd');
        break;
}
console.log(currentPass);


Mijn code geeft deze error:
Code is incorrect. Your code is producing the wrong output. The password you're printing is incorrect!


Misschien begrijp ik de vraag niet goed of mijn JavaScript skills zijn nog te n00b. Kunnen jullie mij helpen?

[ Voor 2% gewijzigd door RobIII op 29-12-2019 01:20 . Reden: Code tags toegevoegd ]

Beste antwoord (via KaasOmelet op 28-12-2019 23:50)


  • WK100
  • Registratie: Februari 2011
  • Laatst online: 07:47
Wat mij in eerste instantie opvalt is dat de code zowel ín het switch blok als daarbuiten een resultaat naar de console stuurt. Gezien alle paden gedekt zijn door het switch blok is het m.i. netter om het alleen daarbuiten te laten.

Alle reacties


Acties:
  • 0 Henk 'm!

  • Mighty
  • Registratie: Oktober 2001
  • Niet online

Mighty

Brains & Steel

laat maar

[ Voor 91% gewijzigd door Mighty op 28-12-2019 19:33 ]

|| The harder you fall the more it hurts - be awesome ||


Acties:
  • 0 Henk 'm!

  • Vloris
  • Registratie: December 2001
  • Laatst online: 09:09
Je moet het nieuwe wachtwoord printen, niet naar console.log sturen denk ik?

Acties:
  • +1 Henk 'm!

  • Raynman
  • Registratie: Augustus 2004
  • Laatst online: 15:47
Je print currentPass nu altijd twee keer: een keer in de switch en een keer daarna.

Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • WK100
  • Registratie: Februari 2011
  • Laatst online: 07:47
Wat mij in eerste instantie opvalt is dat de code zowel ín het switch blok als daarbuiten een resultaat naar de console stuurt. Gezien alle paden gedekt zijn door het switch blok is het m.i. netter om het alleen daarbuiten te laten.

Acties:
  • 0 Henk 'm!

  • KaasOmelet
  • Registratie: Oktober 2014
  • Laatst online: 17-03 22:25
WK100 schreef op zaterdag 28 december 2019 @ 20:03:
Wat mij in eerste instantie opvalt is dat de code zowel ín het switch blok als daarbuiten een resultaat naar de console stuurt. Gezien alle paden gedekt zijn door het switch blok is het m.i. netter om het alleen daarbuiten te laten.
Jij bent een topper! Ik heb er nu dit van gemaakt:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
switch (weekDay) {
    case 'monday':
        (currentPass = weeklyPass+'mnd');
        break;
    case 'tuesday':
        (currentPass = weeklyPass+'tsd');
        break;
    case 'wednesday':
        (currentPass = weeklyPass+'wdnsd');
        break;
    case 'thursday':
        (currentPass = weeklyPass+'thrsd');
        break;
    case 'friday':
        (currentPass = weeklyPass+'frd');
        break;
    case 'saturday':
        (currentPass = weeklyPass+'strd');
        break;
    case 'sunday':
        (currentPass = weeklyPass+'snd');
        break;
}
console.log(currentPass);


Geeft als antwoord: Code is correct! Super bedankt _/-\o_

[ Voor 0% gewijzigd door RobIII op 29-12-2019 01:20 ]


Acties:
  • 0 Henk 'm!

Verwijderd

var weeklyPass = 'darlene';
var weekDay = 'friday';
var currentPass;

// 'y' is a vowel in this case
// https://www.merriam-webst...s-sometimes-a-vowel-usage

switch(weekDay) {
case 'monday' :
(currentPass = weeklyPass + 'mnd' );
break ;
case 'tuesday' :
(currentPass = weeklyPass + 'tsd' );
break ;
case 'wednesday' :
(currentPass = weeklyPass + 'wdnsd' );
break ;
case 'thursday' :
(currentPass = weeklyPass +"thrsd" );
break ;
case 'friday' :
(currentPass = weeklyPass + 'frd' );
break ;
case 'saturday' :
(currentPass = weeklyPass + 'strd' );
break ;
case 'sunday' :
(currentPass = weeklyPass + 'snd' );
break ;
}
console.log( currentPass );


"mnd" instead of "month".

Acties:
  • +1 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Je bent de eerste die over ‘month’ begint, dus geen idee wat je probeert te corrigeren?


Alternatief had die hele switch ook 1 replace van alle klinkers in weekday kunnen zijn. Scheelt 7 hardcoded in- en outputs en een schermlengte. :p

{signature}

Pagina: 1