Javascript 将字符串中所有出现的字符的索引添加到数组中
我试图将特定字符的所有索引从字符串添加到数组中 我有以下代码,但我不得不重新启动我的浏览器大约10次,因为它无法工作Javascript 将字符串中所有出现的字符的索引添加到数组中,javascript,arrays,iteration,indexof,Javascript,Arrays,Iteration,Indexof,我试图将特定字符的所有索引从字符串添加到数组中 我有以下代码,但我不得不重新启动我的浏览器大约10次,因为它无法工作 var xPositions = new Array(); var startPos = 0; var string = "abcdexabcdexabcdexabcdexabcdexabcdexabcdex"; while (true) { var currentIndex = string.indexOf("x", startPos); if (curr
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;
}
我想永远迭代,直到不再出现字符,然后中断
欢迎提供任何帮助/建议。试试看
var currentIndex = string.indexOf("x", startPos+1);
我认为你得到了相同的当前指数一遍又一遍。“indexOf”从指定的索引开始搜索,因此必须相对于上一次查找递增
为以后的引用,您可以考虑尝试使用具有断点的调试器,这样的问题变得相对容易发现。(即使只是做一些相关数据的控制台日志也会使这种类型的错误变得微不足道——很难始终完全理解您以前从未使用过的函数是如何工作的,看看它的行为是否符合您的期望也不丢脸)。
startPos=currentIndex+1;