【发布时间】:2020-09-06 02:57:35
【问题描述】:
我的目标是按字母顺序排列 givin 字符串。例如,给定字符串“The Holy Bible”,应该得到“BbeehHilloTy”。下面是代码:
function alphabetized(s) {
let sArray = s.split(" ").join("").split("");
//below to perform a bubble sorting
for (let i = 0; i < sArray.length; i++) {
for (let j = 0; j < sArray.length - i; j++) {
if ((sArray[j].toString().toLowerCase()) > (sArray[j + 1].toString().toLowerCase())) {
let tempItem = sArray[j];
sArray[j] = sArray[j + 1];
sArray[j + 1] = tempItem;
}
}
}
return sArray.join("");
}
console.log(alphabetized('The Holy Bible'));
我不断从 JS 控制台收到错误:
if ((sArray[j].toString().toLowerCase()) > (sArray[j + 1].toString().toLowerCase())) {
TypeError: Cannot read property 'toString' of undefined
任何帮助将不胜感激!
【问题讨论】:
-
仔细阅读消息。不是“toString 未定义”,而是“toString of 未定义”。
-
当
i为0时,sArray.length - i将与sArray.length相同,因此sArray[j + 1]将超出范围。
标签: javascript tostring