前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >20181021_ARTS_week17

20181021_ARTS_week17

作者头像
Bob.Chen
发布2018-11-08 10:41:13
3590
发布2018-11-08 10:41:13
举报
文章被收录于专栏:程序员的诗和远方

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

Algorithm

代码语言:javascript
复制
/**
 * 
 * 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 来处理异步数据的例子,感觉还挺有参考价值的。

代码语言:javascript
复制
// 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 下调用方法有时候不填其中一个参数时的处理方法。

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

代码语言:javascript
复制
> method('parameter1', , 'parameter3');
Uncaught SyntaxError: Unexpected token ,

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

代码语言:javascript
复制
> method('parameter1', , 'parameter3');
Uncaught SyntaxError: Unexpected token ,

Share

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

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

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

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

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


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-10-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Algorithm
  • Review
  • Tip
  • Share
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档