为什么会陷入死循环。求大神
var arr = new Array;
var childarr = new Array;
arr[0] = childarr;
arr[0][0] = "ss";
arr[0][1] = "ss";
arr[0][2] = childarr;
arr[0][2][0] = "1";
function forEachData(nData){
if(isChild(nData)){
for(i=0;i<nData.length;i++){
forEachData(nData[i]);
}
}
else{
document.write(nData);
}
}
function isChild(arrsvv){
return typeof(arrsvv) == "object";
}
forEachData(arr)
没用
追答楼主,好了没。 你绝壁是直接复制代码试了吧。 我注释里很清楚啊
需要改成 arr[0][2] = new Array;
有解决方法吗?
追答你先要告诉我要实现什么东西,代码没看明白
追问就是遍历array下面的array。
如果是字符串就显示
根据数据来无限循环Array下的Array
是数据初始化出了问题,它的值并不是能你预想的那样,也搞得我一头雾水,后来是通过跟踪发现的,你的只要把childarr你改成其它名称就可以了赋予正确初数据了,以下是我写的
var arr = new Array();
var arr1 = new Array("2-str1","2-str2");
var arr2 = new Array("4-str1","4-str2","4-str3");
arr[0] = "1";
arr[1]=arr1;
arr[2]= "3";
arr[3] = arr2;
//也就是说arr[1]和arr[3]要用不同的数组去赋值,否则会相互往复的引用数据,因为数组是引用类型,你对某个元素赋了某个数组,就意味着这两个对象引用了的地址是一样的,等你下次再把数组负给另一个数组元素的时候,实际上就引用了上一个元素,上一个元素本身又数组,就循环反复引用自身了。有点拗口,你用调试器跟踪一下就明白了。
你的意思我明白。
但是按照你的数据
再new 一个Array
添加进 arr2里
就错了。
我需要无限级
有解决方法吗?
js无限循环为什么会错
代码是没有问题的。是数据的问题 arr[0] = childarr;arr[0][0] = "ss";arr[0][1] = "ss";arr[0][2] = childarr;arr[0][2][0] = "1";这里的第4行引用了自身数据,存在了数据的无限次引用。即结构是这样的:[['ss','ss',['1','ss',['1','ss',['1','ss',...]...
你好,我想请问一下,我的js一直在请求数据,不断刷新页面,根本停不下来...
根据你的描述,大概是你js中设置了循环。不过希望你最好把代码贴出来,然后把问题描述的精确一点。
javascript的clearTimeout问题
无限循环的原因是你取 offsetHeight的值, 而设置的是height, 所以你的 if(h>0) 总是true 其它没什么问题,
请问JS 中for 循环和while 循环的问题
两个循环括号里都是条件,语法不同而已。对while来说,它的条件是当i<5时循环执行大括号里的代码,所以必须在代码里加上i++作为条件限制,否则while将无限循环。对for来说,更是一目了然,i初始值为1,每执行一次同时执行i++,当执行至i=11时,否决条件i<11,终止循环。
js中for循环和while循环在使用的时候有何区别?
不同点:for: 对于for循环来说,一般循环的是知道指定次数的元素,比如对一个知道长度的数组或者类数组进行循环。while: 对于while循环来说,一般不知道我们需要执行多少次,不知道循环什么时候结束。当达到指定的目的后,结束循环。总结: for 和 while 都是循环方法。具体在什么情况下使用,要根据需求的...
只要提示是否停止运行此脚本,我就不能继续上网了。
这种情况一般是页面上的js程序出现死循环或者无限递归调用的BUG导致,也可能是浏览器的兼容问题。你可以换个内核不同的浏览器(Chrome、Opera、FireFox)进行访问,确认是否是浏览器的兼容问题导致。如果不是浏览器的兼容问题导致,那就说明是页面的问题了,如果清除浏览器缓存后还不能解决的话,就是页面...
js: 页面内不停的请求数据造成内存是页面很卡,怎么解决
js 怎么会不断的请求么,是Ajax请求的数据太多,还是你语法写错了造成了无限死循环!
js里while语句的问题。
while(true)while语句是根据括号内的bool值进行判断是否进行继续循环 true 就是 bool值里面的 “真”意思这个循环会无限执行下去,一般这个循环里面应该有个 break 跳出循环语句。还有问题可以追问。
新手求助:JS中do...while循环中使用 if判断语句 会导致浏览器卡死...
是的,当i===6时,continue进入下一次循环,i没办法加1,就死这了 do { i=i+1;if(i===6)} 先让i+1再判断就可以了
抓住数据的小尾巴 - JS浮点数陷阱及解法
这实际上是由于浮点数存储方式导致的精度问题。JavaScript采用IEEE 754标准的64位双精度浮点数,虽然看似精确,但实际存储时受到小数位数限制,从而产生误差。例如,0.1的二进制表示为无限循环的0.0001100110011...,转换成十进制时会有微小偏差。浮点数的存储利用科学计数法,整数部分固定为1,小数部分以...