【发布时间】:2018-06-29 22:52:04
【问题描述】:
当我使用 splice 方法遍历数组时,页面会冻结。看起来我造成了一个无限循环。 lib.randomInt() 有效,所以这不是问题。
function() {
return function(string) {
var arr = string.split("")
arr.sort();
for(var i = 0; arr.length;i++){
arr.splice((i+1),0,lib.randomInt(9));
}
var pseudocryptarr = arr.join("");
}
})()("example");
这是来自位于 html 主文件上方的不同文件
var lib = {
factorial: function(num){
function _factorial(num){
if(num === 1){
return 1;
} else {
return num*_factorial(num-1);
}
}
console.log(num+"! = " + _factorial(num));
},
randomInt: function(int,offset){
if(offset == undefined || null || NaN){
offset = 0;
}
return Math.floor(Math.random()*int)+offset;
},
display: function(m, fn){
fn(m);
}
};
【问题讨论】:
-
您在每次迭代中使数组 1 元素更长,因此您的循环的结束条件永远不会接近被满足。你想达到什么目标?
-
我的理论是 splice 不断向数组中添加元素,这样循环就永远不会结束
标签: javascript arrays loops infinite-loop