Dra*_*nar 3 javascript functional-programming ecmascript-6
在Javascript(ES2015)中,有没有办法只映射数组的一部分?
例如:
let m = someArray.map(function(n){ if(n===0) return n+1; }
Run Code Online (Sandbox Code Playgroud)
就是这样,它将返回一个映射数组,该数组的元素少于原始数组.
这是我们可以用一些函数式编程技术开箱即用的东西吗?
更改元素数量的地图是icky.最好先过滤,然后映射:
let arr2 = arr.filter(e => e === 0).map(e => e + 1);
Run Code Online (Sandbox Code Playgroud)
使用ECMAScript 6草案引入的数组理解很容易,但是会推迟到ES7:
let m = [for (n of someArray) if (n===0) n+1]
Run Code Online (Sandbox Code Playgroud)