我正在尝试将特定字符的所有索引从字符串添加到数组中。
我有以下代码,但我不得不重启我的浏览器大约10次,因为它不起作用。
var xPositions = new Array();
var startPos = 0;
var string = "abcdexabcdexabcdexabcdexabcdexabcdexabcdex";
while (true) {
var currentIndex = string.indexOf("x", startPos);
if (currentIndex == -1) {
break;
}
xPositions.push(currentIndex);
startPos = currentIndex;
}
我想过永远迭代,直到不再出现这个角色,然后休息。
任何帮助/建议表示赞赏。
答案 0 :(得分:1)
尝试
var currentIndex = string.indexOf("x", startPos+1);
我认为你一遍又一遍地获得相同的当前指数。 “indexOf”在您指定的索引处开始搜索,因此您必须相对于最后一个查找增加它。
为了将来参考,您可以考虑尝试使用带断点的调试器,这样的问题变得相对容易发现(即使只是做一些console.log的相关数据可以使mincemeat摆脱这种类型的bug - 这很难要始终完全理解你以前从未使用过的功能是如何工作的,看看它的行为是否与你的期望相符并不可耻。