【问题标题】:How can I sort an array by number of letters? [duplicate]如何按字母数对数组进行排序? [复制]
【发布时间】:2020-08-07 01:14:18
【问题描述】:

尝试按每个数组值的字母数对字符串数组进行排序,我有这个数组:

 var list = ["rrr", "re", "r", "rrar"]

输出将是:

var list = ["r", "re", "rrr", "rrar"];

这是我的代码:

        var list = ["rrr", "re", "r", "rrar"];
    n = 4;
    x = -1;
    document.write(" list before: " + list);

    for (k = 0; k < n; k++) {
        list[x] = list;

        for (i = 0; i < n-k; i++) {

            if (list[i + 1].length < list[i].length) {
                aux = list[i];
                list[i] = list[i + 1];
                list[i + 1] = aux;
            }
        }
    }
    document.write(" list after: " + list);

我不明白为什么 Chrome 的控制台给我一个“TypeError: list[(i + 1)] is undefined”,我正在尝试,但我找不到在哪里定义它

【问题讨论】:

  • list.sort((a, b) =&gt; a.length - b.lenght)
  • @RashadKokash,答案在下面。当您将它们作为 cmets 发布时,您会缩短该过程。
  • 因为您在最后一个索引上并且您正在尝试读取下一个索引。最后一个索引后没有索引

标签: javascript arrays sorting letter


【解决方案1】:

不要重新发明轮子:只需使用Array.prototype.sort

list.sort((a, b) => a.length - b.length);

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-10-05
  • 2011-11-04
  • 2018-11-02
  • 1970-01-01
  • 2015-05-17
  • 2014-05-14
  • 1970-01-01
相关资源
最近更新 更多