这是从https://segmentfault.com/q/1010000006954351参考的,达到了我要去重的功能,可是具体的原理,我其实没懂,有大神可以指教一下吗? var hash = {};//arr是要去重的对象数组 arr = arr.reduce(function(item, ne... ...
分类:
编程语言 时间:
2018-05-09 15:14:14
阅读次数:
148
async 函数 1.ES2017 标准引入了 async 函数,它是对 Generator 函数的改进 , 我们先看一个读取文件的例子: Generator 写法是这样的 : var fs = require('fs'); var readFile = function (fileName) { ...
分类:
其他好文 时间:
2018-05-09 15:02:07
阅读次数:
188
《asp.net-mvc框架揭秘》一书中,有个示例,是使用unity容器来注入自定义的控制器工厂。代码示例可以自己去下载源码,在这里我就不说了。IOC容器的本质是解耦的实例化接口类,而如何做到解耦就是通过第三方容器来实例化,在这里是unity容器,而不是在项目中实例化接口类。实例化的方法无非就是反射 ...
分类:
编程语言 时间:
2018-05-09 14:34:16
阅读次数:
331
Stream 是一个抽象接口,Node 中有很多对象实现了这个接口。例如,对http 服务器发起请求的request 对象就是一个 Stream,还有stdout(标准输出)。 Node.js,Stream 有四种流类型: Readable - 可读操作。 Writable - 可写操作。 Dupl ...
分类:
Web程序 时间:
2018-05-09 01:25:32
阅读次数:
256
解构不仅可以用于数组,还可以用于对象。 对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。 以上的代码中的第一个例子,等号左边两个变量的次序与等号右边两个同名属性不一致。但是对取值完全没有影响。第二个例子 ...
分类:
其他好文 时间:
2018-05-09 01:21:12
阅读次数:
156
简介 基于跳表,支持并发,有序的哈希表。 跳表 红色路径为寻找结点F。 拿空间换时间,时间复杂度,O(nlogn). 源码分析 内部类 Node 属性 构造方法 核心方法 Index 属性 构造方法 核心方法 HeadIndex 属性 构造方法 核心方法 initialize() doPut(K, ...
分类:
其他好文 时间:
2018-05-08 23:54:07
阅读次数:
206
下面是我之前一直使用的一个洗牌算法: 但仔细想想,其实这是非常不合理的,因为已经交换过的位置,下次仍然可能会被选上。 比较好的做法是排除已经交换过的位置,将剩下的位置洗牌,如下: ...
分类:
编程语言 时间:
2018-05-08 22:15:09
阅读次数:
155
function main () { return Promise.all([1,2,3,4].map((value) => asyncThing(value))) } function asyncThing(n) { console.log(n); return n; } main() .then... ...
分类:
其他好文 时间:
2018-05-08 22:14:08
阅读次数:
161
在Java 8中,Predicate是一个函数式接口,可以被应用于lambda表达式和方法引用。其抽象方法非常简单: 即对t进行断言,返回true或者false。 例如:在filter中 就会接收一个Predicate 下面来演示一下如何使用Predicate 上面的代码定义了多个Predicate ...
分类:
编程语言 时间:
2018-05-08 14:32:48
阅读次数:
203