假设我们有返回数组的函数让我们说
fn(parm1, parm2, parm3)
我想有条件地反转返回的数组。
我知道你可以这样做:
condition ? fn(parm1, parm2, parm3).reverse() : fn(parm1, parm2, parm3)
但就我而言,我不想调用它两次。不是数组,甚至不是调用数组的函数。
所以我的问题是,有什么明显的事情要做,但我错过了
array[condition && .reverse()]
或者第一种方式是调用数组方法的唯一方式。
最佳答案
你可以使用 Array#slice
作为默认方法。
result = fn(parm1, parm2, parm3)[condition ? 'reverse' : 'slice']();
代替 slice
并且为了防止获取数组的副本,您可以实现一个函数,该函数只从对象中转换 this
而不改变它。
Array.prototype.nop = function () { return this; };
result = fn(parm1, parm2, parm3)[condition ? 'reverse' : 'nop']();
关于javascript - 在 javascript 中执行条件数组方法的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47115374/