首页 > 解决方案 > 什么都不做的数组方法

问题描述

我喜欢函数式编程,它让我的代码,尤其是作用域更干净。

我发现自己在我的代码中进行了非常繁重的数组操作,如下所示:

this.myArray = someArray
    .slice(0, n)
    .map(someFunction)
    // more manipulation;

if (condition) {
    this.myArray = this.myArray.reverse();
}

this.myArray = this.myArray
    .reduce(anotherFunction, [])
    // even more manipulation

是否有一些内置方法可以加入if我的功能链?就像是:

this.myArray = someArray
    .slice(0, n)
    .map(someFunction)
    // ... more manipulation
    [condition ? 'reverse' : 'void']()
    .reduce(anotherFunction, [])
    // ... even more manipulation

void()方法不存在。有替代方案吗?将多个调用合并到一个链中是否流行的方法,即使这意味着调用什么都不做的方法?

我知道我可以将自己的方法添加到 Array:

Array.prototype.void = function () {
    return this;
}

但这不是重点。是否有任何标准/内置方式可以达到相同的效果?

标签: javascriptarrays

解决方案


作为中性功能,您可以采取


推荐阅读