2302 就要到了,还在玩传统迭代器?

268 阅读2分钟

起因

在群里看到一个图挺有意思的,基于这个图整了个活。

7b835524a16598e040daef21745622cc.jpg

使用

  • 支持先进的 -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 这个

实现?

赞美万能的原型链之主。

通过覆写对应类型的原型链上的迭代器方法,从而实现魔法般的效果。

github.com/NWYLZW/iter…

相关