javascript - 为什么我的计算结果未定义?

标签 javascript

当我运行下面的 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/

相关文章:

javascript - 使用克隆节点如何更改子节点 onclick 参数的属性?

javascript - 为什么闭包允许函数访问定义函数时范围内的外部变量很重要?

javascript - 甲板上的 VueJS V-For 和引导卡

javascript - 如何在自定义元素中提供后备 CSS 值?

javascript - jQuery 单击 ul 的内部并获取它的属性

javascript - jQuery 链接淡入淡出。帮助!

Javascript正则表达式从字符串中删除字符和数字

javascript - JQuery IE问题

javascript - 如何去掉这段代码中的 map ?

javascript - 为什么 Mobify 在自托管时无法工作?