昨天决定关闭微信朋友圈。
有这么几个原因。
- 关闭朋友圈不会影响我收发红包。
- 朋友圈的设计不是用来扩展朋友圈,而是限制朋友圈。
- 转发机制很不友好。
- 最近微信朋友圈推广的一些活动让我很不耻。
不过我还是会维护微信订阅号。
昨天决定关闭微信朋友圈。
有这么几个原因。
不过我还是会维护微信订阅号。
这本书《Becoming Steve Jobs》比Isaacson的那本《史蒂夫·乔布斯传》要好看一些。主要原因是作者之一的Schlender采访乔布斯多年,手上累积了大量一手的资料,所以在选取时游刃有余,同时也因为他和其它与乔布斯同时代的IT巨擘有着良好的采访/被采访关系和/或私人关系,所以能从更多的角度、更多的来源对乔布斯进行描述。
[
之前一直没有认认真真地学习JavaScript(https://en.wikipedia.org/wiki/ECMAScript),因为一直只是将它作为在Web中进行编程,进行动态效果呈现的一个辅助脚本(我用jQuery比较多,还用过一段时间的Dart)。
这两天因为脚扭了在家里休息了几天,随手拿起《Eloquent JavaScript》就看几段,就顺手学习了一下JavaScript中的reduce。
完整的说明在这里。
按照定义,reduce对一个数组中的每个元素进行一个类似于“累加”的操作,将其规整到一个单一值。 它的完整语法如下:
arr.reduce(callback[, initialValue])
而其中的callback函数,又可以最多有四个参数:
我们先看一个对数组中所有元素求和的例子:
var total = [0, 1, 2, 3].reduce(
function(sum, current) {
return sum+current;
});
// total == 6
这是一个非常直观的例子。 计算机程序求和总是用一个循环的方式。所以,“和”会保存在一个变量中,然后顺序一个元素一个元素的相加。
注意,由于我们没有给出initialValue,所以在第一次运行时,sum(作为previousValue)就会取数组的第一个数值0,而此时的currentValue就会是数组的第二个元素1。在这个程序中,这么做当然是没有问题的。 我们可以将这个程序等价地写作:
var total = [0, 1, 2, 3].reduce(
function(sum, current) {
return sum+current;
}, 0);
// total == 6
此时我们显式地给予初始值为0(求和当然是如此),得到的结果是一致的。
第二个例子是将多维数组“压扁”成一维数组。这也可以用reduce来完成。
var arr=[[1,2,3],[4,5],[6,1]];
var x=arr.reduce(
function(flat, current)
{
return flat.concat(current);
}, [])
);
这里必须给定initialValue。
本文收录于[go4pro.org]