FizzBuzz
2017.06.04 12:20:36

昨晚闲得无聊在网上各技术站点上瞎晃悠,看到有一系列JS文章,每章后都有习题,然后想想闲着也是闲着,就拿来打发下无聊吧。其中有一道大名鼎鼎的“FizzBuzz”题目,就是:给你1——100的数字,如果能被3整除就将该数字改为Fizz,如果能被5整除就改为Buzz,如果既能被3又能被5整除就改为FizzBuzz。据说面试者有90%都会栽在这道题上面......&(@#^^)&#(:-(

当时写了个这样的:

然后有小盆友说,你这个尽量用const。但我调试阶段要在控制台修改、重定义函数时,当然const不方便呀......

然后又有小盆友说:“作为最好的语言PHP的码农,为何不是Mac而是Windows笔记本?”其实我年轻时也是很羡慕Mac的,现在老了就越来越“邋遢随意”了......[抠鼻中]

然后又有个小盆友说:“为什么你用Opera浏览器?”观察太仔细了呀(ーー;)......

然后又有个小盆友说:“这个VS Code的主题是啥?”——是“Monokai Phoenix”......

然后又有个小盆友说:“昨天参加一个敏捷开发的邀请课,然后用的题目就是这个,和我结对编程的小姐姐说,不用if语句,然后我就提出了用大三目嵌套,然后她说这样不够优雅,最后用多个三目和字符串优先输出和拼接的方式,得到了结果,但还想看看有没有更好的方式?”嘢,都跟小姐姐结对编程了,不过话说这个小姐姐也太挑剔了点儿?[继续抠鼻中......]

我就顺手继续写下去了......

const simpleRange = (start, len) =>
    [...Array(len)].map((_, k) => start + k);

const calculateFizzBuzz2 = (start, len) => {
    let result = simpleRange(start, len).map(v => {
        if (v % 3 === 0 && v % 5 === 0) {
            return 'FizzBuzz';
        } else if (v % 3 === 0) {
            return 'Fizz';
        } else if (v % 5 === 0) {
            return 'Buzz';
        }
        return v;
    });

    console.log(result.join(', ').trim());
};

calculateFizzBuzz2(1, 100);

const calculateFizzBuzz3 = (start, len) => {
    let result = simpleRange(start, len).map(v =>
        ((v % 3 === 0 && v % 5 === 0) && 'FizzBuzz')
        || ((v % 3 === 0) && 'Fizz')
        || ((v % 5 === 0) && 'Buzz')
        || v
    );

    console.log(result.join(', ').trim());
};

calculateFizzBuzz3(1, 100);

我觉得还是用if语句清晰。写程序有两种情况,一种是写清晰点,一种是写混乱点;就跟编程语言有两种,一种是程序员主动想用的,一种是程序员被动去用的......

谁还有更好的/更有意思的写法,拉出来秀一秀吧~

以下纯属发散叨叨......

呐~,我个人写程序的初衷呢,最简单地说就是“兴趣方面的追求”。有时候看到一门语言的某种特性、某个解决方案,在戳中心里共鸣处时,会油然生出一股喜悦之情。固然年轻时为了生计让自己不断强化对技术的投入,但多年以后,感觉到自己心中的程序世界已逐渐独立开来,不止是关乎工作需要,还成了一种自自然然的习惯。

那天看郁达夫《春风沉醉的晚上》,最后写到:

贫民窟里的人已经睡眠静了。对面日新里的一排临邓脱路的洋楼里,还有几家点着了红绿的电灯,在那里弹罢拉拉衣加。一声二声清脆的歌音,带着哀调,从静寂的深夜的冷空气里传到我的耳膜上来,这大约是俄国的飘泊的少女,在那里卖钱的歌唱。天上罩满了灰白的薄云,同腐烂的尸体似的沉沉的盖在那里。云层破处也能看得出一点两点星来,但星的近处,黝黝看得出来的天色,好像有无限的哀愁蕴藏着的样子。

从字里行间得出的体会,自己感到了震撼。反过来能够触动自己的东西,自己又会更努力去体会。写程序学编程于我而言亦有同感。我始终觉得程序员写程序是为自己而写,踏踏实实去写,就算工作需要,也是一种为自己负责任的态度。而个人在程序员生涯里,追求的是不断超越自己,追求的是那种进步的感觉,而非说这种语言是“垃圾”、那种技术“太low”,更不是某种语言得到了什么大厂的加持就瞬间可以红遍江湖然后感觉是all-in-one般的“救世技术”。当然PHP就是最好的语言......

郁达夫的文字渲染力发挥到十二成,这等刻木三分的效果,带给我强烈的极客通感。生活不易,如果春华秋实、起起伏伏之后,自己心中还有极客般的美好,还有一、两样让你感受到充实的事物,难道人不就该这样吗?说正经的,我从不喜欢成天坐着和闷着,更不喜欢那种胡子拉碴的样子。嗯哼,胡子拉碴也要有一种仆仆风尘般的样子啊......

纯叨叨一下,这一段有一种不想写程序的感觉反复,给自己找找感觉......


(0)

发表评论请先登录或注册