Sha256: 9c4dd7744ec737b57d1b6065d5d7b09fc53dac01ae7412c3fe764ac16bbc1471

Contents?: true

Size: 1.34 KB

Versions: 68

Compression:

Stored size: 1.34 KB

Contents

class TwelveDays {
    static days: string[] = [
        'first',
        'second',
        'third',
        'fourth',
        'fifth',
        'sixth',
        'seventh',
        'eighth',
        'ninth',
        'tenth',
        'eleventh',
        'twelfth'
    ]

    static gifts: string[] = [
        'a Partridge in a Pear Tree.',
        'two Turtle Doves, ',
        'three French Hens, ',
        'four Calling Birds, ',
        'five Gold Rings, ',
        'six Geese-a-Laying, ',
        'seven Swans-a-Swimming, ',
        'eight Maids-a-Milking, ',
        'nine Ladies Dancing, ',
        'ten Lords-a-Leaping, ',
        'eleven Pipers Piping, ',
        'twelve Drummers Drumming, '
    ]

    static recite(startVerse: number, endVerse: number): string {
        let lyrics = this.reciteVerse(startVerse)
        for (let i = startVerse + 1; i <= endVerse; i++) {
            lyrics += this.reciteVerse(i)
        }
        return lyrics
    }

    private static reciteVerse(verse: number) {
        let result = 'On the ' + this.days[verse - 1] + ' day of Christmas my true love gave to me, '
        for (let i = verse; i > 0; i--) {
            if (verse !== 1 && i === 1) {
                result += 'and '
            }
            result += this.gifts[i - 1]
        }
        result += '\n'
        return result
    }
}

export default TwelveDays

Version data entries

68 entries across 68 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/typescript/exercises/twelve-days/twelve-days.example.ts
trackler-2.2.1.179 tracks/typescript/exercises/twelve-days/twelve-days.example.ts
trackler-2.2.1.178 tracks/typescript/exercises/twelve-days/twelve-days.example.ts
trackler-2.2.1.177 tracks/typescript/exercises/twelve-days/twelve-days.example.ts
trackler-2.2.1.176 tracks/typescript/exercises/twelve-days/twelve-days.example.ts
trackler-2.2.1.175 tracks/typescript/exercises/twelve-days/twelve-days.example.ts
trackler-2.2.1.174 tracks/typescript/exercises/twelve-days/twelve-days.example.ts
trackler-2.2.1.173 tracks/typescript/exercises/twelve-days/twelve-days.example.ts
trackler-2.2.1.172 tracks/typescript/exercises/twelve-days/twelve-days.example.ts
trackler-2.2.1.171 tracks/typescript/exercises/twelve-days/twelve-days.example.ts
trackler-2.2.1.170 tracks/typescript/exercises/twelve-days/twelve-days.example.ts
trackler-2.2.1.169 tracks/typescript/exercises/twelve-days/twelve-days.example.ts
trackler-2.2.1.167 tracks/typescript/exercises/twelve-days/twelve-days.example.ts
trackler-2.2.1.166 tracks/typescript/exercises/twelve-days/twelve-days.example.ts
trackler-2.2.1.165 tracks/typescript/exercises/twelve-days/twelve-days.example.ts
trackler-2.2.1.164 tracks/typescript/exercises/twelve-days/twelve-days.example.ts
trackler-2.2.1.163 tracks/typescript/exercises/twelve-days/twelve-days.example.ts
trackler-2.2.1.162 tracks/typescript/exercises/twelve-days/twelve-days.example.ts
trackler-2.2.1.161 tracks/typescript/exercises/twelve-days/twelve-days.example.ts
trackler-2.2.1.160 tracks/typescript/exercises/twelve-days/twelve-days.example.ts