python-列表推导 js-数组推导
我的py学的菜爆了,哦,不是说我的js不菜,是都菜,我承认了,我现在都没认全py的类型
python-列表推导
不得不说py的REPL环境比node体验差很多啊,,,高亮没有,不全也没有,,,啊啊啊,
然后查了一下,据说,有一个python-prompt-toolkit
的东西可以自己拿来构建一个REPL
链接 http://blog.just4fun.site/python-prompt-toolkit.html
我决定使用基于它它构建好的工具
阔怕,这个人的blog也推荐,不知道是不是他的blog,内容好多,真666
好了,前面说了一堆没用的,,,
>>> res = [i * i for i in [1, 2, 3]]
#=> [1, 4, 9]
如果有条件
>>> res = [i * i for i in [1, 2, 3] if i > 1]
#=> [4, 9]
js-数组推导
这个功能本来是准备ES6加入的,后来推到了ES7
var raw = [1, 2, 3, 4, 5];
var res [for (i of raw) i * 2];
但,我发现我的node怎么跑不了这个代码
> var raw = [1, 2, 3, 4, 5];
undefined
> var res = [for (i of raw) i * 2];
...
你给我三个点点点什么意思….难道是现在还没办法用吗,翻车了
无奈的我到FF里跑了一下确实可以的
这个功能甚至可以替代ES5里的map和filter (ノ*・ω・)ノ
数组推导
[for (i of [1, 2, 3]) i * i]
ES5 map
[1, 2, 3].map(i => i * i)
Ramda
var R = require('ramda');
R.map(i => i * i, [1, 2, 3]);
或者让我科里化一次(傲娇状)
var R = require('ramda');
square = R.map(i => i * i);
square([1, 2, 3])
filter
实现filter的话,还需要使用if
[for (i of [1, 2, 3, 4, 5]) if(i < 3) i]
好了,the end
突然沮丧,又有什么用呢,你又不写前端,每天学这些,还想不想保研了