首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在迭代中创建函数

在迭代中创建函数
EN

Stack Overflow用户
提问于 2020-04-21 04:27:16
回答 1查看 43关注 0票数 1

我遇到过一些对javascript数组进行排序的代码。在排序回调中,声明了一个辅助函数。在排序中声明这个是不是性能较差?在排序函数之外创建辅助函数,然后在排序函数中使用,是不是性能更好?在此之前

代码语言:javascript
运行
复制
rows.sort((rowA, rowB) => {
  const getValue = row => {
    const sortValue = row.value;
    if (isNaN(sortValue)) {
      return sortValue.toLowerCase();
    } else {
      return sortValue;
    }
  };
  return getValue(rowA) < getValue(rowB) ? -1 : 1;
});

之后

代码语言:javascript
运行
复制
const getValue = row => {
  const sortValue = row.value;
  if (isNaN(sortValue)) {
    return sortValue.toLowerCase();
  } else {
    return sortValue;
  }
};
rows.sort((rowA, rowB) => {
  return getValue(rowA) < getValue(rowB) ? -1 : 1;
});
EN

Stack Overflow用户

回答已采纳

发布于 2020-04-21 05:55:14

一般来说,这对99%的用例都无关紧要。

排序需要N log(N)时间,所以在运行它之前添加的任何恒定时间复杂度都不会影响复杂性。

在细节上-是的,它会更慢,因为你需要在每次迭代中将整个函数放入内存中。

在设计中-不要将任何函数放在另一个函数中,除非你是javascript专家,并且你100%确定你想要的。

结论-几乎没有理由将函数放在另一个函数中,如果这样做会有几个缺点,因此不要这样做。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61331442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档