我无法理解逻辑失败的地方!当我试图强加一个word.length条件来推动我从一个数组中的段落中得到的单词时,我陷入无限循环。感谢所有人,请让我知道你的想法!
var str = document.getElementsByTagName('p')[0].innerHTML;
console.log(str);
function wordIndexes(str) {
var result = [];
var len = str.length;
var i = 0, j, word;
while (i < len) {
if (str[i] === ' ') {
++i;
}
else {
word = "";
for (j = i; j < len && str[j] !== ' '; ++j) {
word += str[j];
}
console.log(word.length);
//imposing length conditions
if (word.length < 4)
{console.log('too short')}
else {
result.push([i, word]);
i = j;
};
}
}
return result;
}
答案 0 :(得分:3)
如果字长小于4,则代码会记录一条消息,但不会更新i
,因此下一次迭代将从同一点开始,并在同一点失败。
我建议另一种选择,但目前尚不清楚你打算如何处理这种情况。
答案 1 :(得分:0)
if (word.length < 4)
{
console.log('too short')
}
else
{
...
如果你进入这种情况,我的计数器不会改变。检查你每次都不要进入这种情况
答案 2 :(得分:0)
你在if语句中错过了i = j
if (word.length < 4)
{
console.log('too short')
i = j // You missed this
}