【发布时间】:2021-07-16 21:56:03
【问题描述】:
我正在尝试返回字符串中最后一个单词的长度,目前我正在努力调试。问题在于 forEach 循环我遇到了一个不会更新空数组的断点。
function lengthOfLastWord(s) {
let spaces = [];
let space = ' ';
let spaceInd = s.indexOf(space);
while (spaceInd != -1) {
spaces.push(spaceInd);
spaceInd = s.indexOf(space, spaceInd + 1);
}
let nonSpaces = [];
let wordArray = [];
for(let i = 0; i<spaces.length; i++) {
nonSpaces.push((spaces[i + 1] - spaces[i]) - 1);
}
nonSpaces.forEach(function(number) {
if (number >= 1) {
wordArray.push(number);
}
})
let words = wordArray[wordArray.length - 1];
if ((wordArray.length === 0)) {
console.log(0);
} else {
console.log(words);
}
};
lengthOfLastWord("this is my test string");
如果我忽略断点,我会得到正确的结果,但我似乎无法弄清楚为什么空 wordArray 不会更新。
(我确信有一种更简单的方法可以使用过滤器和映射来获得结果,但我想知道是否有一个简单的修复我当前的错误代码)
【问题讨论】:
标签: javascript debugging foreach breakpoints