起因
在群里看到一个图挺有意思的,基于这个图整了个活。
使用
-
支持先进的-r语法在控制台
node -r iterateur/register向终端输入神奇的代码
console.log([.../3~15:2/]) -
自定义引入
require('iterateur').registerNumberIterator()require('iterateur').registerRegExpIterator()- ...
语法
number
利用 - 号算符与 . 对数字语意进行扩展,定义如下:
[-]<start:positive int>[.[end:positive int]][.step(step:positive int)]
相信你也和我一样看的莫名其妙,没关系,我自己也不知道自己写了啥。我们来看看下面的用法:
console.log([...10]);
// [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
console.log([...-10]);
// [ 0, -1, -2, -3, -4, -5, -6, -7, -8, -9 ]
console.log([...2.5]);
// [ 2, 3, 4 ]
console.log([...-2.5]);
// [ 5, 4, 3 ]
console.log([...10.2]);
// [ 10, 9, 8, 7, 6, 5, 4, 3 ]
console.log([...-5.2]);
// [ 2, 3, 4 ]
console.log([...10..step(2)]);
// [ 0, 2, 4, 6, 8 ]
很奇妙吧,js 就是如此的神奇。点这里试试
RegExp
懒得介绍了(((
感兴趣可以 click 这个
实现?
赞美万能的原型链之主。
通过覆写对应类型的原型链上的迭代器方法,从而实现魔法般的效果。