当我运行下面的 javascript 代码时,我得到的变量 original 以
结尾"1059823647undefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefined0"
为什么会这样,我该如何解决?
original="012345678901234567890";
document.write("<textarea>");
document.write(original);
document.write("</textarea>"+"<br>");
/* scramble */
var scramble='1059823647';
scramble=scramble.split('');
var scrambled=new Array();
original=original.split('');
for(i=0;i<original.length;i++){
if(Math.round(Math.round(Math.floor(i/10)*10)+10)>=original.length){
scrambled[i]=original[i];
}else{
scrambled[i]=original[Math.round(Math.round(Math.floor(i/10)*10)+scramble[i%10])];
}
}
original='';
for(i=0;i<scrambled.length;i++){
original+=scrambled[i];
}
document.write("<textarea>");
document.write(original);
document.write("</textarea>"+"<br>");
最佳答案
undefined 正在打印,因为你的等式:
Math.round(Math.round(Math.floor(i/10)*10)+scramble[i%10])
正在返回数组“原始”范围之外的数字
例如,当 i = 10 时,您的等式返回 101。
我不是很确定,但我想你的意思是这样的:
(Math.floor(i/10)*10) + Number(scramble[i%10])
关于javascript - 为什么我的计算结果未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1817426/