仅映射到Javascript中的部分元素的"地图"

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)

就是这样,它将返回一个映射数组,该数组的元素少于原始数组.

这是我们可以用一些函数式编程技术开箱即用的东西吗?

Bar*_*icz 8

更改元素数量的地图是icky.最好先过滤,然后映射:

let arr2 = arr.filter(e => e === 0).map(e => e + 1);
Run Code Online (Sandbox Code Playgroud)


Ori*_*iol 5

使用ECMAScript 6草案引入的数组理解很容易,但是会推迟到ES7:

let m = [for (n of someArray) if (n===0) n+1]
Run Code Online (Sandbox Code Playgroud)