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 - 多次循环同一数组

javascript - 发送空白电子邮件的 PHP 脚本无法获取发布数据

javascript - 如何将@model.ApplicationId从html表单传递到js

javascript - 我怎样才能获得深层嵌套对象的一些值(value)?

javascript - 如何存储jQuery函数的结果并将其显示在其他页面上

javascript - Meteor JS 中的客户端和服务器端验证

javascript - Angular.js - $scope 不从 setTimeout() 更新

javascript - Meteor 和 ReactJS 的简单分页

javascript - 生成随 secret 钥 firestore

javascript - 通过上面的输入更改选择/选项通用文本