当我运行以下功能时,我收到此错误:
"错误:潜在的无限循环。"
问题似乎是" 0"我在拼接方法中使用,因为当我将其更改为任何其他数字(1 - 9)时,我不会收到此错误。
我不确定这会如何产生无限循环。
" 0"我在拼接方法中使用了与#34; i"或者其他的东西?
非常感谢帮助,谢谢。
function spinalCase(str) {
var array = str.split("");
for (i = 0; i < array.length; i++) {
if (array[i] !== array[i].toLowerCase()) {
array.splice(i, 0, " ");
}
}
return array;
}
spinalCase('AllThe-small Things');
答案 0 :(得分:2)
array.splice(i, 0, " ");
表示在当前i
索引处插入新元素。这意味着i
处的项目会被推升到i + 1
。那么在循环的下一次迭代中,你再次处理同一个项目,永远产生另一个插入等。
您可以在i
块内增加if
一段额外时间,但我更喜欢向后循环:
function spinalCase(str) {
var array = str.split("");
for (i = array.length - 1; i >= 0; i--) {
if (array[i] !== array[i].toLowerCase()) {
array.splice(i, 0, " ");
}
}
return array;
}
console.log(spinalCase('AllThe-small Things'));