第十七周,算法题 Remove Element,看了一篇讲用 WebWorker 处理异步数据的文章,介绍了使用对象展开式来简化调用函数时要省略的参数,分享了
/**
*
* 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))
Improving your Async functions with WebWorkers
文中给出了一个使用 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();
介绍一个 ES6 下调用方法有时候不填其中一个参数时的处理方法。
一般情况下,不填某个参数,就会报错。
> method('parameter1', , 'parameter3');
Uncaught SyntaxError: Unexpected token ,
当然,这里可以使用 null 来代替,其实更好的方法是使用对象展开式。
> method('parameter1', , 'parameter3');
Uncaught SyntaxError: Unexpected token ,
最近在极客时间上《程序员进阶攻略》专栏看了一篇文章,内容是讲写作方面的。其实我一直认为,基本的写作能力是每个人都必须的。
老实说,看了一段时间这个专栏,感觉名不符实,专栏题目是程序员进阶攻略,但是内容大多是偏向软技能方面的,不是说软技能不好,每个人都需要很多软技能方面的东西,但既然题目是程序员进阶,我期望的是更多程序员编码设计等方面的进阶。
诚然,软技能是大多程序员晋升道路上必不可少的东西,可以理解为横向的边界拓展。 而编码设计能力是纵向的能力拓展,这个才是程序员毕业后几年需要提高的,然而这项能力的提升需要大量的实践。
想通这点之后,似乎就可以理解为什么这个专栏很多内容都是偏软技能方面了,因为编码这个硬技能很难通过几篇文章讲清楚,必须有大量的实践与学习。想通过几篇文章就有很大提高,不过是镜中花水中月。
想通之后,也算修正了自己的期望,从软技能的培养上看,这个专栏还是不错的,另外也推荐一本书《代码整洁之道-程序员的职业素养》。