20180909_ARTS_week11

栏目: JavaScript · 发布时间: 6年前

内容简介:第十一周,算法题 Integer to Roman,看了一篇讲 ES6 class 的文章,介绍了 ES6 中 for-of 循环,分享了关于看书看文档的一些想法。数字转罗马字符,思路比较简单,罗马字符都是固定的,做个表存下来,然后从大到小用除法就能知道每个字符有多少个了。JavaScript ES6: Classes

第十一周,算法题 Integer to Roman,看了一篇讲 ES6 class 的文章,介绍了 ES6 中 for-of 循环,分享了关于看书看文档的一些想法。

Algorithm

/**
 * Integer to Roman
 * https://leetcode.com/problems/integer-to-roman/description/
 * 
 * @param {number} num
 * @return {string}
 */
var intToRoma = function (num) {

    var romaDict = {
        "M":1000,
        "CM":900,
        "D":500,
        "CD":400,
        "C":100,
        "XC":90,
        "L":50,
        "XL":40,
        "X":10,
        "IX":9,
        "V":5,
        "IV":4,
        "I":1
    }

    var rs = "";
    for (var k of Object.keys(romaDict)) {
        var v = romaDict[k]

        var repeat = parseInt(num/v)

        for (var i=0; i<repeat; i+=1) {
            rs += k;  // 有 repeat 个字母
        }
        num = num % v
    }

    return rs;   
}

console.log(intToRoma(3))
console.log(intToRoma(4))
console.log(intToRoma(9))
console.log(intToRoma(58))
console.log(intToRoma(1994))

数字转罗马字符,思路比较简单,罗马字符都是固定的,做个表存下来,然后从大到小用除法就能知道每个字符有多少个了。

Review

JavaScript ES6: Classes

https://medium.com/@luke_smaki/javascript-es6-classes-8a34b0a6720a

文章介绍了 ES6 中 class 的用法,包括构造函数 constructor,成员函数,静态函数,getter,setter 以及继承相关的东西,写的还是比较简明易懂的,推荐。

Tip

介绍一下 es6 的 for-of 循环。

es6 加入了一种新的循环方式 for-of,基本语法是:

for (let value of myArray) {
  console.log(value);
}

与 forEach 不同的是,for-of 是可以支持 break, continue 和 return 的。

与 for-in 不同的是,for-of 不能直接遍历对象属性,而 for-in 在这方面就比较擅长了。

for (let key of Object.keys(someObject)) {
    ...
}

for (let key in someObject) {
    ...
}

基本上,对象遍历可以用 for-in,其它遍历可以用 for-of

Share

分享一本小书 -- 《阅读 是一座随身携带的避难所》

最开始知道这本书是因为安姐推荐的,书名很有意思,作者是英国著名小说家毛姆。

书中说到了一个特别有意思的东西,叫『跳读』。因为种种原因,作者很可能在写作的时候加入一些和中心关系不大的内容以此来凑字数,所以读者要锻炼一种跳读的能力,可以忽略一些细枝末节直达书的主题。

这个说法让我有点恍然大悟,经常在阅读技术书籍的时候,喜欢逐行逐句逐节逐章的看,即使是一些同类型的技术书,比如都是讲 Python 的,也会把书中的基础内容也看一看,怕错过某些这本书讲了而别的书没讲的知识点。

想起以前公司一个技术牛人,当时一个项目要用到 WPF/WCF 这类技术,他就买了几本相关书回来,过了几天,我看书还是挺新的就问他这个看了吗,他说看完了,我说这个很新啊,才几天这就看完了。他淡淡的回了句:『我已经把感兴趣的,或者说需要看的给看了』。

跳读大抵也是如此吧。

由此也想到,特别要小心一些技术书籍或者设计相关的书籍,请了一大堆人写推荐语,书中大段大段的代码占位,看着很厚,其实超出文档的实质性内容不多,甚至就是官方文档的照搬和在加工。技术人提高甄别能力很重要,别看有一堆人写推荐语就是好。

这里也说到官方文档,记得耗子哥说过,学习一个东西,最开始就应该通读一遍文档,知道这个东西的全貌是怎么样的,能做什么事情。

学编程语言也是,什么从入门到精通这类数可以少看点,反而是应该好好看一遍文档,因为文档才是这门编程语言作者最想说的东西,也是你最应该知道的东西。

碎碎念

记录一些所思所想,写写科技与人文,写写生活状态,写写读书心得,主要是扯淡和感悟。 欢迎关注,交流。

微信公众号:程序员的诗和远方

公众号ID : MonkeyCoder-Life

20180909_ARTS_week11


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

程序员面试宝典(第5版)

程序员面试宝典(第5版)

欧立奇、刘洋、段韬 / 电子工业出版社 / 2015-10 / 55.00

容提要 《程序员面试宝典(第5版)》是《程序员面试宝典》的第5 版,在保留第4 版的数据结构、面向对象、程序设计等主干的基础上,修正了前4 版近40 处错误,解释清楚一些读者提出的问题,并使用各大IT 公司及相关企业最新面试题(2014-2015)替换和补充原内容,以反映自第4 版以来两年多的时间内所发生的变化。 《程序员面试宝典(第5版)》取材于各大公司面试真题(笔试、口试、电话面试......一起来看看 《程序员面试宝典(第5版)》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换