是否有比我进行标题排序(没有前导引号或文章)更有效的标题数组排序方式?

道格·勒纳

我知道类似这样的问题在这里,但是我要特别关注处理速度。我正在做的事情已经有效。

我有一个包含标题进行排序的数组。有些标题以双引号开头,例如,"You're in Charge" Leadership in Difficult Times而某些标题以A,An或The开头,例如A Collective Impact on Literacy我想在排序时忽略它们,这很好用:

    theArray.sort(function(a, b) {
        var titleA = a.title.toLowerCase();
        titleA = removeCertainLeadingCharacters(titleA);
        var titleB = b.title.toLowerCase();
        titleB = removeCertainLeadingCharacters(titleB);
        return (titleA < titleB) ? -1 : (titleA > titleB) ? 1 : 0;
    });

函数removeCertainLeadingCharacters()的定义方式如下:

function removeCertainLeadingCharacters(title) {
    // remove leading quote from a lowercase title, and also leading articles (a, the, an)
    if (title.indexOf('"') == 0) title = title.substr(1);
    words = title.split(" ");
    if(words[0] == 'a' || words[0] == 'the' || words[0] == 'an' ) {
        return words.splice(1).join(" ");   
    }
    else {
        return title;
    }
}

我唯一的问题是是否有更快的方法。如果我要对大约800个标题的数组进行排序,而忽略了对removeCertainLeadingCharacter()的调用,则排序速度将非常快。如果我添加函数调用,则速度会变慢。速度并没有太大的阻力,但是速度明显慢一些。没有呼叫,它基本上是瞬时的。

所以我只是想知道完成这项任务的速度是否比我正在做的更快。

谢谢。

西尔

这可以为您节省一些时间(50%的时间),因为只检查语句中的第一个单词就不需要拆分。

function removeCertainLeadingCharacters(title) {
  // remove leading quote from a lowercase title, and also leading articles (a, the, an)
  if (title.indexOf('"') === 0) {
    title = title.substr(1);
  }

  if (title.startsWith('a ')) {
    title = title.substring(2);
  } else if (title.startsWith('an ')) {
    title = title.substring(3);
  } else if (title.startsWith('the ')) {
    title = title.substring(4);
  }
  return title;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

什么是清除列标题的更有效或“ pythonic”方式?

来自分类Dev

我自己对数组进行排序的有效方法

来自分类Dev

更有效的排序算法?

来自分类Dev

使用javascript中的对象数组进行排序或插入会更有效吗?

来自分类Dev

如何根据 Ruby 中的出现频率对哈希进行排序?有比我更好的方法吗?

来自分类Dev

更有效率的排序方式

来自分类Dev

排序算法比气泡排序更有效

来自分类Dev

有没有更有效的方式对此进行编码?

来自分类Dev

如何以更有效的方式将标题添加到csv文件

来自分类常见问题

有效地对numpy数组进行降序排序?

来自分类Dev

有没有一种比Python中的list.sort()更有效的方法来对列表进行排序?

来自分类Dev

在哪里更有效或更方便地对数据进行排序?

来自分类Dev

一种更有效的方法来对netstat命令的结果进行排序

来自分类Dev

SQL是否有比基于不同条件的CASE结果更有效的方法

来自分类Dev

数组可以比排序更有效地分组吗?

来自分类Dev

更有效的加载图像进行检测的方式

来自分类Dev

以特定方式对多维数组进行分组/压缩的更有效/更聪明的方法

来自分类Dev

在没有比较器的Java中对路径名的数组列表进行排序

来自分类Dev

有没有更有效的方式来跟踪没有孩子的父母记录?

来自分类Dev

有没有更有效的方式来跟踪没有孩子的父母记录?

来自分类Dev

有没有更有效的方式将SQL写入按日期和列值对计数进行分组

来自分类Dev

查找列表中添加分数平均排名的有效方法。可能是更有效的排序方式或数学方式?

来自分类Dev

有没有更有效的方式在数组中分配非零元素?

来自分类Dev

是否有比file_get_contents更少的内存扩展或更有效的合并MP3方式?

来自分类Dev

更有效的颜色更改方式

来自分类Dev

更快/更有效的绑定方式?

来自分类Dev

哪种沟通方式更有效

来自分类Dev

更有效的书写方式吗?

来自分类Dev

Cawas的GetOrAddComponent比我的更有效率吗?

Related 相关文章

  1. 1

    什么是清除列标题的更有效或“ pythonic”方式?

  2. 2

    我自己对数组进行排序的有效方法

  3. 3

    更有效的排序算法?

  4. 4

    使用javascript中的对象数组进行排序或插入会更有效吗?

  5. 5

    如何根据 Ruby 中的出现频率对哈希进行排序?有比我更好的方法吗?

  6. 6

    更有效率的排序方式

  7. 7

    排序算法比气泡排序更有效

  8. 8

    有没有更有效的方式对此进行编码?

  9. 9

    如何以更有效的方式将标题添加到csv文件

  10. 10

    有效地对numpy数组进行降序排序?

  11. 11

    有没有一种比Python中的list.sort()更有效的方法来对列表进行排序?

  12. 12

    在哪里更有效或更方便地对数据进行排序?

  13. 13

    一种更有效的方法来对netstat命令的结果进行排序

  14. 14

    SQL是否有比基于不同条件的CASE结果更有效的方法

  15. 15

    数组可以比排序更有效地分组吗?

  16. 16

    更有效的加载图像进行检测的方式

  17. 17

    以特定方式对多维数组进行分组/压缩的更有效/更聪明的方法

  18. 18

    在没有比较器的Java中对路径名的数组列表进行排序

  19. 19

    有没有更有效的方式来跟踪没有孩子的父母记录?

  20. 20

    有没有更有效的方式来跟踪没有孩子的父母记录?

  21. 21

    有没有更有效的方式将SQL写入按日期和列值对计数进行分组

  22. 22

    查找列表中添加分数平均排名的有效方法。可能是更有效的排序方式或数学方式?

  23. 23

    有没有更有效的方式在数组中分配非零元素?

  24. 24

    是否有比file_get_contents更少的内存扩展或更有效的合并MP3方式?

  25. 25

    更有效的颜色更改方式

  26. 26

    更快/更有效的绑定方式?

  27. 27

    哪种沟通方式更有效

  28. 28

    更有效的书写方式吗?

  29. 29

    Cawas的GetOrAddComponent比我的更有效率吗?

热门标签

归档