假设我们有函数返回数组让我们说
fn(parm1, parm2, parm3),我想条件反转返回的数组.
我知道你可以这样做:
condition ? fn(parm1, parm2, parm3).reverse() : fn(parm1, parm2, parm3)
Run Code Online (Sandbox Code Playgroud)
但就我而言,我不想两次打电话.不是数组甚至是调用数组的函数.
所以我的问题是,有什么明显可做的事情,我错过了
array[condition && .reverse()]
Run Code Online (Sandbox Code Playgroud)
或者第一种方式是调用数组方法的唯一方法.
您可以使用Array#slice默认方法.
result = fn(parm1, parm2, parm3)[condition ? 'reverse' : 'slice']();
Run Code Online (Sandbox Code Playgroud)
slice您可以实现一个this仅从对象转换而不会改变它的函数,而不是防止获取数组的副本.
Array.prototype.nop = function () { return this; };
result = fn(parm1, parm2, parm3)[condition ? 'reverse' : 'nop']();
Run Code Online (Sandbox Code Playgroud)