javascript - 在 javascript 中执行条件数组方法的最佳方法

标签 javascript

假设我们有返回数组的函数让我们说 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/

相关文章:

javascript - jQuery 警报代码不起作用

javascript - addClass 动态加载的内容

javascript - 读取 Json 对象数组并创建 csv 文件时,第一列是从第二条记录开始的

javascript - 使用 JavaScript 显示和隐藏浏览器聊天框

javascript 使用字符串分割替换标记

javascript - 完成我的 jQuery 打字功能

javascript - jQuery 错误 - 生成未定义

javascript - 使用 Knockout 和 JayData 进行下拉刷新

javascript - 如何更新 react 组件的渲染数据?

javascript - 如何解决createSelector方法 Uncaught Error ?