javascript - javascript 查找表是在初始化之前还是之后执行函数?

标签 javascript performance

如果之前有人问过这个问题,我深表歉意,但我找不到任何我能想到的关键词。

我在 javascript 中有一个数组,我想根据我所处的模式确定它的最小值/最大值,所以我有一个函数:

function arrayMinMax(array, mode) {
  // return min/max value from 1D array
  return {
    0: Math.min.apply(null, array),
    1: Math.max.apply(null, array)
  }[mode]
}

我的问题是:调用此函数时,是同时计算最小值和最大值还是仅计算通过模式选择的最小值或最大值?如果是前者,那么与后者相比,性能会很差。

最佳答案

这两个值都将被计算。我建议您在这里使用“策略”模式。所以它看起来像:

getArrayMinMax: function (array, strategy) {
    //you should pass Math.min or Math.max
    return strategy.apply(null, array)
};

所以它可以这样使用:

getArrayMinMax([1, 2, 3, 4], Math.min);

关于javascript - javascript 查找表是在初始化之前还是之后执行函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33074049/

相关文章:

JavaScript 自定义事件处理程序策略建议

javascript - 映射到 d3 中的序数刻度时如何计算闰年?

javascript - 如何使 HTML 上的基金标志可见?

java - 使用结构/类来增加缓存空间局部性?

java - 优化嵌套数据的数据库查询

performance - 使用Grails hasMany关系时如何解决潜在的性能问题?

javascript - Google Map Api - 弹出窗口仅在一个点上打开,而在其他点上则不打开

javascript - 实例挂载后添加插件(Vue.use) (new Vue().$mount())

r - 缓慢的 data.frame 行分配

javascript - 用更好的东西代替 Switch-Case?