【发布时间】: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) => a.length - b.lenght) -
@RashadKokash,答案在下面。当您将它们作为 cmets 发布时,您会缩短该过程。
-
因为您在最后一个索引上并且您正在尝试读取下一个索引。最后一个索引后没有索引
标签: javascript arrays sorting letter