20181021_ARTS_week17

第十七周,算法题 Remove Element,看了一篇讲用 WebWorker 处理异步数据的文章,介绍了使用对象展开式来简化调用函数时要省略的参数,分享了

Algorithm

/**
 * 
 * Remove Element
 * https://leetcode.com/problems/remove-element/submissions/
 * 
 * @param {number[]} nums
 * @param {number} val
 * @return {number}
 */
var removeElement = function (nums, val) {
    if (nums.length == 0) return 0;

    var i = 0;
    for (var j = 0; j < nums.length; j += 1) {
        if (nums[j] != val) {

            nums[i] = nums[j]
            i += 1;
        }
    }

    return i
};

console.log(removeElement([0,1,2,2,3,0,4,2], 2))

Review

Improving your Async functions with WebWorkers

http://www.jstips.co/en/javascript/improving-your-async-functions-with-webworkers/?nsukey=pTemAsdIVo93vJEweycCfwgRUfqYH2JARg7OngZG%2FOytE6zZbEHiZuHMzBFl1Exnbk0L%2FucBrR9FydfXCrxjIFToZu%2Fvhh4L5CNILN7AWJ9halt5aXVNc8WXzYrHpqnnvYSdT5CO%2F5CiPCrOYj5pTQ%3D%3D

文中给出了一个使用 WebWorker 来处理异步数据的例子,感觉还挺有参考价值的。

// my_worker.js
const do_a_lot_of_processing = (data) => {
    ....
}

onmessage = (e) => {
    postMessage(do_a_lot_of_processing(e.data));
}

// main.js
const myWorker = new Worker('my_worker.js');

async function get_useful_data() {
    const raw_data = await request(some_url);
    myWorker.postmessage(raw_data);
}

const show_data => (e) {
    const data = e.data;
    ...
}

myWorker.onmessage(show_data);
get_useful_data();

Tip

介绍一个 ES6 下调用方法有时候不填其中一个参数时的处理方法。

一般情况下,不填某个参数,就会报错。

> method('parameter1', , 'parameter3');
Uncaught SyntaxError: Unexpected token ,

当然,这里可以使用 null 来代替,其实更好的方法是使用对象展开式。

> method('parameter1', , 'parameter3');
Uncaught SyntaxError: Unexpected token ,

Share

最近在极客时间上《程序员进阶攻略》专栏看了一篇文章,内容是讲写作方面的。其实我一直认为,基本的写作能力是每个人都必须的。

老实说,看了一段时间这个专栏,感觉名不符实,专栏题目是程序员进阶攻略,但是内容大多是偏向软技能方面的,不是说软技能不好,每个人都需要很多软技能方面的东西,但既然题目是程序员进阶,我期望的是更多程序员编码设计等方面的进阶。

诚然,软技能是大多程序员晋升道路上必不可少的东西,可以理解为横向的边界拓展。 而编码设计能力是纵向的能力拓展,这个才是程序员毕业后几年需要提高的,然而这项能力的提升需要大量的实践。

想通这点之后,似乎就可以理解为什么这个专栏很多内容都是偏软技能方面了,因为编码这个硬技能很难通过几篇文章讲清楚,必须有大量的实践与学习。想通过几篇文章就有很大提高,不过是镜中花水中月。

想通之后,也算修正了自己的期望,从软技能的培养上看,这个专栏还是不错的,另外也推荐一本书《代码整洁之道-程序员的职业素养》。


本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 20181013_ARTS_week16

    这题没好好审题,题目中说不能增加其它空间,以及要在原数组中改,没注意最后只要前 n 位是无重复的就可以了。

    Bob.Chen
  • 20181125_ARTS_week22

    这个解法来自 https://leetcode.com/problems/maximum-subarray/discuss/139218/Javascript-...

    Bob.Chen
  • django,mysql存储emoji表情,utf8mb4

    今天在做后台的时候发现一个错误: Incorrect string value: '\xF0\x9F\x90\xA8' for column 'signatu...

    Bob.Chen
  • PhpSpreadsheet读取excel【包含图片】

    composer require phpoffice/phpspreadsheet=1.8.2

    梦_之_旅
  • 移除数组中指定的元素 原

    新建一个数组,把符合条件的数据通过push方法放进去比较简单,但是如果数据量比较多的时候就很消耗内存,性能比较差。现在有2种方法不重新创建数组,只改变原数组,完...

    tianyawhl
  • 里约奥运|高科技助力 本届奥运会有待打破更多记录

    大数据文摘
  • @程序员,技术债你还清了吗?

    这些话把每个开发人员的耳朵,都磨出茧自来了。更不像话的是,每个开发人员也整日把这些话挂在嘴边。

    Spark学习技巧
  • 好书 | 《数据之美:一本书学会可视化设计》

    书名:《数据之美:一本书学会可视化设计》 作者:邱南森(Nathan Yau) 出版社:中国人民大学出版社 ? 推荐理由 《经济学人》杂志2013年年度推荐的三...

    CDA数据分析师
  • Python监控服务器实现邮件微信报警[未测试]

    本文中笔者暂时实现的只有cpu和内存的监控,python可以监控许多的主机信息,网络,硬盘,机器状态等,以下是代码的实现,代码可以实现windows和linux...

    双面人
  • 深入了解HBase架构

    Spark学习技巧

扫码关注云+社区

领取腾讯云代金券