【发布时间】:2015-05-10 00:10:17
【问题描述】:
我正在尝试在字符串内容中查找字符串,并将找到的内容逐字母推送到数组中,并在 html 中显示所有找到的内容。但是 for 循环似乎有问题(不要运行它会崩溃)。在不使用正则表达式的情况下实现这样的最佳实践是什么。代码位于下方。
var text = "asdas John asd asda sdas dasd asd Jon asdas das dasdas dasdasdasda sadas John jsadjasd";
var hits = [];
var myName = "John";
for (var i = text.indexOf("John"); i < (i + myName.length); i++) {
hits.push(text[i]);
}
if (hits.length === 0) {
document.getElementById("result").innerHTML = "not found";
} else {
document.getElementById("result").innerHTML = hits.toString();
}
【问题讨论】:
-
for 比较是错误的:i
-
如果
anything>=0,i < (i + anything)将始终评估为真,并且由于字符串的长度满足该条件,这会产生无限循环。只使用i < myName.length
标签: javascript arrays for-loop indexof