- JScript code
var temp1;var temp2;var numI;var numJ;for(var i=0;i<nums.length;i++){ for(var j=i+1;j<nums.length;j++){ numI = Number(nums[i]);//因为从cookie里取出的数字js是当字符串处理的 ,所以比较大小前先转成数字类型 numJ = Number(nums[j]); if(numI<=numJ){ temp1 = numI; numI = numJ; numJ = temp1; temp2 = ids[i]; ids[i] = ids[j]; ids[j] = temp2; }}
我在myeclipse下面保存上面一段代码(冒泡排序)的时候就报错,说内存溢出,原因我找出来了,就是在调用js的Number函数的时候,这个地方的问题。如果我不调用Number函数就不报错。
问下大神们,这是为咩啊??
------解决方案--------------------
Number() 作为一个函数来调用,它将把自己的参数转换成一个原始的数值,并且返回这个值(如果转换失败,则返回 NaN)。 这东西不可能还内存溢出吧--
冒泡前面段可以理解,后面ids[i] ids[j] 这个干吗用的--
------解决方案--------------------
确认一下是否从cookie中取到值了
选 alert(nums[i]);
numI = Number(nums[i]);
可以改为numI = nums[i] *1 ;
js是自动类型转换的