如何在我的代码中解决此循环错误(循环评估错误)

时间:2019-01-19 18:31:40

标签: javascript loops

在下面的代码中,只有一部分无效

<html>
<script>
var encryption = [];
var value = 0;
var cvalue = 0;


var code = prompt("Type In Encryption Password [Beta Encryptor]");
var codeLength = code.length * 100;



for (var j = 0; j < code.length; j++) {
    var UnitPlace = codeLength - j;
    
    if (code[j] === "0") {
        value = 0;
        encryption.push(0);
    }

    else {
    if (code[j] === "1") {
        value = 1;
        encryption.push(1);
    }

    else {
    if (code[j] === "2") {
        value = 2;
        encryption.push(2);
    }

    else {
    if (code[j] === "3") {
        value = 3;
        encryption.push(3);
    }

    else {
    if (code[j] === "4") {
        value = 4;
        encryption.push(4);
    }

    else {
    if (code[j] === "5") {
        value = 5;
        encryption.push(5);
    }

    else {
    if (code[j] === "6") {
        value = 6;
        encryption.push(6);
    }

    else {
    if (code[j] === "7") {
        value = 7;
        encryption.push(7);
    }

    else {
    if (code[j] === "8") {
        value = 8;
        encryption.push(8);
    }

    else {
    if (code[j] === "9") {
        value = 9;
        encryption.push(9);
    }

    else {
    if (code[j] === "A") {
        value = 10;
        encryption.push(10);
    }

    else {
    if (code[j] === "B") {
        value = 11;
        encryption.push(11);
    }

    else {
    if (code[j] === "C") {
        value = 12;
        encryption.push(12);
    }

    else {
    if (code[j] === "D") {
        value = 13;
        encryption.push(13);
    }

    else {
    if (code[j] === "E") {
        value = 14;
        encryption.push(14);
    }

    else {
    if (code[j] === "F") {
        value = 15;
        encryption.push(15);
    }

    else {
    if (code[j] === "G") {
        value = 16;
        encryption.push(16);
    }

    else {
    if (code[j] === "H") {
        value = 17;
        encryption.push(17);
    }

    else {
    if (code[j] === "I") {
        value = 18;
        encryption.push(18);
    }

    else {
    if (code[j] === "J") {
        value = 19;
        encryption.push(19);
    }

    else {
    if (code[j] === "K") {
        value = 20;
        encryption.push(20);
    }

    else {
    if (code[j] === "L") {
        value = 21;
        encryption.push(21);
    }

    else {
    if (code[j] === "M") {
        value = 22;
        encryption.push(22);
    }

    else {
    if (code[j] === "N") {
        value = 23;
        encryption.push(23);
    }

    else {
    if (code[j] === "O") {
        value = 24;
        encryption.push(24);
    }

    else {
    if (code[j] === "P") {
        value = 25;
        encryption.push(25);
    }

    else {
    if (code[j] === "Q") {
        value = 26;
        encryption.push(26);
    }

    else {
    if (code[j] === "R") {
        value = 27;
        encryption.push(27);
    }

    else {
    if (code[j] === "S") {
        value = 28;
        encryption.push(28);
    }

    else {
    if (code[j] === "T") {
        value = 29;
        encryption.push(29);
    }

    else {
    if (code[j] === "U") {
        value = 30;
        encryption.push(30);
    }

    else {
    if (code[j] === "V") {
        value = 31;
        encryption.push(31);
    }

    else {
    if (code[j] === "W") {
        value = 32;
        encryption.push(32);
    }

    else {
    if (code[j] === "X") {
        value = 33;
        encryption.push(33);
    }

    else {
    if (code[j] === "Y") {
        value = 34;
        encryption.push(34);
    }

    else {
    if (code[j] === "Z") {
        value = 35;
        encryption.push(35);
    }

    else {
    if (code[j] === "a") {
        value = 36;
        encryption.push(36);
    }

    else {
    if (code[j] === "b") {
        value = 37;
        encryption.push(37);
    }

    else {
    if (code[j] === "c") {
        value = 38;
        encryption.push(38);
    }

    else {
    if (code[j] === "d") {
        value = 39;
        encryption.push(39);
    }

    else {
    if (code[j] === "e") {
        value = 40;
        encryption.push(40);
    }

    else {
    if (code[j] === "f") {
        value = 41;
        encryption.push(41);
    }

    else {
    if (code[j] === "g") {
        value = 42;
        encryption.push(42);
    }

    else {
    if (code[j] === "h") {
        value = 43;
        encryption.push(43);
    }

    else {
    if (code[j] === "i") {
        value = 44;
        encryption.push(44);
    }

    else {
    if (code[j] === "j") {
        value = 45;
        encryption.push(45);
    }

    else {
    if (code[j] === "k") {
        value = 46;
        encryption.push(46);
    }

    else {
    if (code[j] === "l") {
        value = 47;
        encryption.push(47);
    }

    else {
    if (code[j] === "m") {
        value = 48;
        encryption.push(48);
    }

    else {
    if (code[j] === "n") {
        value = 49;
        encryption.push(49);
    }

    else {
    if (code[j] === "o") {
        value = 50;
        encryption.push(50);
    }

    else {
    if (code[j] === "p") {
        value = 51;
        encryption.push(51);
    }

    else {
    if (code[j] === "q") {
        value = 52;
        encryption.push(52);
    }

    else {
    if (code[j] === "r") {
        value = 53;
        encryption.push(53);
    }

    else {
    if (code[j] === "s") {
        value = 54;
        encryption.push(54);
    }

    else {
    if (code[j] === "t") {
        value = 55;
        encryption.push(55);
    }

    else {
    if (code[j] === "u") {
        value = 56;
        encryption.push(56);
    }

    else {
    if (code[j] === "v") {
        value = 57;
        encryption.push(57);
    }

    else {
    if (code[j] === "w") {
        value = 58;
        encryption.push(58);
    }

    else {
    if (code[j] === "x") {
        value = 59;
        encryption.push(59);
    }

    else {
    if (code[j] === "y") {
        value = 60;
        encryption.push(60);
    }

    else {
    if (code[j] === "z") {
        value = 61;
        encryption.push(61);
    }

    else {
    if (code[j] === "~") {
        value = 62;
        encryption.push(62);
    }

    else {
    if (code[j] === "`") {
        value = 63;
        encryption.push(63);
    }

    else {
    if (code[j] === "!") {
        value = 64;
        encryption.push(64);
    }

    else {
    if (code[j] === "@") {
        value = 65;
        encryption.push(65);
    }

    else {
    if (code[j] === "#") {
        value = 66;
        encryption.push(66);
    }

    else {
    if (code[j] === "$") {
        value = 67;
        encryption.push(67);
    }

    else {
    if (code[j] === "%") {
        value = 68;
        encryption.push(68);
    }

    else {
    if (code[j] === "^") {
        value = 69;
        encryption.push(69);
    }

    else {
    if (code[j] === "&") {
        value = 70;
        encryption.push(70);
    }

    else {
    if (code[j] === "*") {
        value = 71;
        encryption.push(71);
    }

    else {
    if (code[j] === "(") {
        value = 72;
        encryption.push(72);
    }

    else {
    if (code[j] === ")") {
        value = 73;
        encryption.push(73);
    }

    else {
    if (code[j] === ">") {
        value = 74;
        encryption.push(74);
    }

    else {
    if (code[j] === "<") {
        value = 75;
        encryption.push(75);
    }

    else {
    if (code[j] === "-") {
        value = 76;
        encryption.push(76);
    }

    else {
    if (code[j] === "_") {
        value = 77;
        encryption.push(77);
    }

    else {
    if (code[j] === "+") {
        value = 78;
        encryption.push(78);
    }

    else {
    if (code[j] === "=") {
        value = 79;
        encryption.push(79);
    }

    else {
    if (code[j] === "{") {
        value = 80;
        encryption.push(80);
    }

    else {
    if (code[j] === "}") {
        value = 81;
        encryption.push(81);
    }

    else {
    if (code[j] === "[") {
        value = 82;
        encryption.push(82);
    }

    else {
    if (code[j] === "]") {
        value = 83;
        encryption.push(83);
    }

    else {
    if (code[j] === "|") {
        value = 84;
        encryption.push(84);
    }

    else {
    if (code[j] === ",") {
        value = 85;
        encryption.push(85);
    }

    else {
    if (code[j] === ".") {
        value = 86;
        encryption.push(86);
    }

    else {
    if (code[j] === "?") {
        value = 87;
        encryption.push(87);
    }

    else {
    if (code[j] === "/") {
        value = 88;
        encryption.push(88);
    }

    else {
    if (code[j] === "'") {
        value = 89;
        encryption.push(89);
    }

    else {
    if (code[j] === '"') {
        value = 90;
        encryption.push(90);
    }

    else {
    if (code[j] === ":") {
        value = 91;
        encryption.push(91);
    }

    else {
    if (code[j] === ";") {
        value = 92;
        encryption.push(92);
    }

    else {
    if (code[j] === " ") {
        value = 93;
        encryption.push(93);
    }

    else {
    value = 93;
    encryption.push(94);
    

}}}}}}}}}}}    
}}}}}}}}}}}
}}}}}}}}}}}
}}}}}}}}}}}
}}}}}}}}}}}
}}}}}}}}}}}
}}}}}}}}}}}
}}}}}}}}}}}
}}}}}}
    

}    




if (encryption.length % 2 === 1) {
encryption.push(93);
alert("The Key was Edited Because The Key needs to be even");
}    







document.write(encryption);




function runner () {
var entext = [];
var p = 0;
var abc = document.getElementById('input');
var ab = abc.length;
    while (p <= ab) {
        entext.push(document.getElementById('input').value[p]);
        document.getElementById('runEncryption').innerHTML = entext[p];
        p++;
    }
alert(ab); //If this was in the loop, it won't work   
}

    











</script>
<input type="text" id="input">
<button onclick="runner();">Add Text to Encrypt</button>
<br>
<div id="runEncryption"></div>
</html>

  

注意:此代码类似于与html相关的代码。这是私事   偏好

这是功能Runner()中的循环。经过2个小时的尝试,尝试了诸如

function runner () {
var entext = [];
var p = 0;
var abc = document.getElementById('input');
var ab = abc.length;
    while (p <= ab) {
        entext.push(document.getElementById('input').value[p]);
        document.getElementById('runEncryption').innerHTML = entext[p];
        p++;
    }
alert(ab); //If this was in the loop, it won't work   
}

循环结构

function runner () {
var entext = [];
    for (var p = 0; p <= getElementById('input').length; p++) {
        entext.push(document.getElementById('input').value[p]);
        document.getElementById('runEncryption').innerHTML = entext[p];
    }   
}

用于循环结构

两者之间的所有内容也不起作用。在循环之外,代码可以工作,但是我需要将循环开放到用户输入的文本限制。 似乎循环无法将getElement代码处理为合适的值。 如何解决此错误?

1 个答案:

答案 0 :(得分:0)

这是一种更简洁的方法,将更轻松地支持编码和解码方法。 我们将chars存储在位置为代码的数组中。允许使用两种方式进行映射。

// Simple array of chars where their index is the 'code'
let lexicon = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "~", "`", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", ">", "<", "-", "_", "+", "=", "{", "", "[", "]", "|", ",", ".", "?", "/", "'", '"', "", ";", " "];

// Function to take a string and encode it using a simple map.
const encodeData = (data, lex) => data.split('').map(c => lex.indexOf(c) + 1);
// Decode does the reverse
const decodeData = (data, lex) => data.map(d => lex[d]);

var encryption = [];
var cvalue = 0;
var code = prompt("Type In Encryption Password [Beta Encryptor]");

alert(encodeData(code, lexicon));

function runner() {
  var abc = document.getElementById('input').value;
  encryption = encodeData(abc,lexicon);
  if (encryption.length % 2 === 1) {
    encryption.push(93);
    alert("The Key was Edited Because The Key needs to be even");
  }   
  document.getElementById('runEncryption').innerHTML = encryption.join();
  alert(encryption); //If this was in the loop, it won't work   
}
<html>
<input type="text" id="input">
<button onclick="runner();">Add Text to Encrypt</button>
<br>
<div id="runEncryption"></div>

</html>

此处使用的是switch语句(更适合此测试类型。)

var encryption = [];
var cvalue = 0;

var code = prompt("Type In Encryption Password [Beta Encryptor]");
var codeLength = code.length * 100;

for (var j = 0; j < code.length; j++) {
  switch (code[j]) {
    case "0":
      value = 0;
      break;
    case "1":
      value = 1;
      break;
    case "2":
      value = 2;
      break;
    case "3":
      value = 3;
      break;
    case "4":
      value = 4;
      break;
    case "5":
      value = 5;
      break;
    case "6":
      value = 6;
      break;
    case "7":
      value = 7;
      break;
    case "8":
      value = 8;
      break;
    case "9":
      value = 9;
      break;
    case "A":
      value = 10;
      break;
    case "B":
      value = 11;
      break;
    case "C":
      value = 12;
      break;
    case "D":
      value = 13;
      break;
    case "E":
      value = 14;
      break;
    case "F":
      value = 15;
      break;
    case "G":
      value = 16;
      break;
    case "H":
      value = 17;
      break;
    case "I":
      value = 18;
      break;
    case "J":
      value = 19;
      break;
    case "K":
      value = 20;
      break;
    case "L":
      value = 21;
      break;
    case "M":
      value = 22;
      break;
    case "N":
      value = 23;
      break;
    case "O":
      value = 24;
      break;
    case "P":
      value = 25;
      break;
    case "Q":
      value = 26;
      break;
    case "R":
      value = 27;
      break;
    case "S":
      value = 28;
      break;
    case "T":
      value = 29;
      break;
    case "U":
      value = 30;
      break;
    case "V":
      value = 31;
      break;
    case "W":
      value = 32;
      break;
    case "X":
      value = 33;
      break;
    case "Y":
      value = 34;
      break;
    case "Z":
      value = 35;
      break;
    case "a":
      value = 36;
      break;
    case "b":
      value = 37;
      break;
    case "c":
      value = 38;
      break;
    case "d":
      value = 39;
      break;
    case "e":
      value = 40;
      break;
    case "f":
      value = 41;
      break;
    case "g":
      value = 42;
      break;
    case "h":
      value = 43;
      break;
    case "i":
      value = 44;
      break;
    case "j":
      value = 45;
      break;
    case "k":
      value = 46;
      break;
    case "l":
      value = 47;
      break;
    case "m":
      value = 48;
      break;
    case "n":
      value = 49;
      break;
    case "o":
      value = 50;
      break;
    case "p":
      value = 51;
      break;
    case "q":
      value = 52;
      break;
    case "r":
      value = 53;
      break;
    case "s":
      value = 54;
      break;
    case "t":
      value = 55;
      break;
    case "u":
      value = 56;
      break;
    case "v":
      value = 57;
      break;
    case "w":
      value = 58;
      break;
    case "x":
      value = 59;
      break;
    case "y":
      value = 60;
      break;
    case "z":
      value = 61;

      break;
    case "~":
      value = 62;
      break;
    case "`":
      value = 63;
      break;
    case "!":
      value = 64;
      break;
    case "@":
      value = 65;
      break;
    case "#":
      value = 66;
      break;
    case "$":
      value = 67;
      break;
    case "%":
      value = 68;
      break;
    case "^":
      value = 69;
      break;
    case "&":
      value = 70;
      break;
    case "*":
      value = 71;
      break;
    case "(":
      value = 72;
      break;
    case ")":
      value = 73;
      break;
    case ">":
      value = 74;
      break;
    case "<":
      value = 75;
      break;
    case "-":
      value = 76;
      break;
    case "_":
      value = 77;
      break;
    case "+":
      value = 78;
      break;
    case "=":
      value = 79;
      break;
    case "{":
      value = 80;
      break;
    case "":
      value = 81;
      break;
    case "[":
      value = 82;
      break;
    case "]":
      value = 83;
      break;
    case "|":
      value = 84;
      break;
    case ",":
      value = 85;
      break;
    case ".":
      value = 86;
      break;
    case "?":
      value = 87;
      break;
    case "/":
      value = 88;
      break;
    case "'":
      value = 89;
      break;
    case '"':
      value = 90;
      break;
    case ":":
      value = 91;
      break;
    case ";":
      value = 92;
      break;
    case " ":
      value = 93;
      break;
      value = 93;
  }

  encryption.push(value);

}



if (encryption.length % 2 === 1) {
encryption.push(93);
alert("The Key was Edited Because The Key needs to be even");
}    

document.write(encryption);




function runner () {
var entext = [];
var p = 0;
var abc = document.getElementById('input');
var ab = abc.length;
    while (p <= ab) {
        entext.push(document.getElementById('input').value[p]);
        document.getElementById('runEncryption').innerHTML = entext[p];
        p++;
    }
alert(ab); //If this was in the loop, it won't work   
}
<html>
<input type="text" id="input">
<button onclick="runner();">Add Text to Encrypt</button>
<br>
<div id="runEncryption"></div>
</html>