diff --git a/exercism/beer-song/beer-song.js b/exercism/beer-song/beer-song.js index 86bfad5..32bf0bf 100644 --- a/exercism/beer-song/beer-song.js +++ b/exercism/beer-song/beer-song.js @@ -14,6 +14,37 @@ BeerSong.prototype.verse = function (verse) { return song; } +function buildFinalString(currentBottles, remBottles) { + return 'Take ' + currentBottles + ' down and pass it around, ' + (verse - 1) + ' bottle of beer on the wall.\n' +} + +function(numBottles, isPlural) { + let pronoun, remBottles, currentBottles, finalString; + if(isPlural) { + pronoun = 'them' + } else { + pronoun = 'it' + } + switch(numBottles) { + case 0: + currentBottles = 'no more bottles' + finalString = 'Go to the store and buy some more, 99 bottles of beer on the wall' + break + case 1: + currentBottles = '1 bottle' + remBottles = 'No more' + break + case 2: + currentBottles = '2 bottles' + remBottles = '1 bottle' + default: + currentBottles = currentBottles + ' bottles' + } + isPlural ? pronoun = 'them' : pronoun = 'it' //TERNARY operator + song = (verse + ' bottles of beer on the wall, ' + verse + ' bottles of beer.\nTake one down and pass it around, ' + (verse - 1) + ' bottles of beer on the wall.\n'); + +} + BeerSong.prototype.sing = function (start, stop) { var song = ''; diff --git a/exercism/phone-number/phone-number.js b/exercism/phone-number/phone-number.js index 9211f85..d5be694 100644 --- a/exercism/phone-number/phone-number.js +++ b/exercism/phone-number/phone-number.js @@ -1,32 +1,32 @@ var PhoneNumber = function(newNumber){ + + this.newNumber = newNumber +this.trimmedNumber = null } PhoneNumber.prototype.number = function() { var cleanNumber = this.newNumber.replace(/\D/g,'') - - - - var trimmedNumber = '' - - if (cleanNumber.length === 10) { - trimmedNumber = cleanNumber - } else if (cleanNumber.length === 11 && cleanNumber.charAt(0) === '1') { - trimmedNumber = cleanNumber.substr(1) - } else { - trimmedNumber = '0000000000' - } -this.newNumber = trimmedNumber +var trimmedNumber = '' + +if (cleanNumber.length === 10) { +trimmedNumber = cleanNumber +} else if (cleanNumber.length === 11 && cleanNumber.charAt(0) === '1') { +trimmedNumber = cleanNumber.substr(1) +} else { +trimmedNumber = '0000000000' +} +this.trimmedNumber = trimmedNumber return trimmedNumber } -PhoneNumber.prototype.areaCode = function() { -return this.newNumber.slice(0,3) +PhoneNumber.prototype.areaCode = function() { +return this.trimmedNumber.slice(0,3) } //format the string to look like a phone number // PhoneNumber.prototype.toString = function() { -return '(' + this.newNumber.slice(0,3) + ') ' + this.newNumber.slice(3,6) + '-' + this.newNumber.slice(6, 10) - } +return '(' + this.trimmedNumber.slice(0,3) + ') ' + this.trimmedNumber.slice(3,6) + '-' + this.trimmedNumber.slice(6, 10) +} module.exports = PhoneNumber; diff --git a/exercism/phone-number/phone-number.spec.js b/exercism/phone-number/phone-number.spec.js index a2eb3b7..e46e132 100644 --- a/exercism/phone-number/phone-number.spec.js +++ b/exercism/phone-number/phone-number.spec.js @@ -2,8 +2,8 @@ var PhoneNumber = require('./phone-number'); describe('PhoneNumber()', function() { it('cleans the number (123) 456-7890', function() { - var phone = new PhoneNumber('(123) 456-7890'); - expect(phone.number()).toEqual('1234567890'); + var phone = new PhoneNumber(); + expect(phone.number('(123) 456-7890')).toEqual('1234567890'); }); it('cleans numbers with dots', function() { diff --git a/team_practice.md b/team_practice.md index d97200c..6d84112 100644 --- a/team_practice.md +++ b/team_practice.md @@ -11,7 +11,7 @@ Exercism provides a number of practice problems along with unit tests to ensure ### Day 1 - Exercism -- [ ] Solve `/exercism/hamming` +- [x] Solve `/exercism/hamming` - [ ] Solve `/exercism/diamond` - [ ] Solve `/exercism/bracket-push` - [ ] Solve `/exercism/ocr-numbers` @@ -27,7 +27,7 @@ Exercism provides a number of practice problems along with unit tests to ensure - [ ] Solve `/exercism/` - [ ] Solve `/exercism/` -- [ ] Solve `/exercism/phone-number` +- [x] Solve `/exercism/phone-number` - [ ] Solve `/exercism/word-count` - [ ] Solve `/exercism/gigasecond` - [ ] Solve `/exercism/leap` @@ -63,7 +63,7 @@ Exercism provides a number of practice problems along with unit tests to ensure - [ ] Solve `/exercism/luhn` - [ ] Solve `/exercism/pythagorean-triplet` -- [ ] Solve `/exercism/beer-song` +- [x] Solve `/exercism/beer-song` - [ ] Solve `/exercism/grade-school`