我正在尝试执行以下代码片段..
var sUserID = "HELLO".toUpperCase();
var oAlphabets = {
"A": 1,
"B": 2,
"C": 3,
"D": 4,
"E": 5,
"F": 6,
"G": 7,
"H": 8,
"I": 9,
"J": 10,
"K": 11,
"L": 12,
"M": 13,
"N": 14,
"O": 15,
"P": 16,
"Q": 17,
"R": 18,
"S": 19,
"T": 20,
"U": 21,
"V": 22,
"W": 23,
"X": 24,
"Y": 25,
"Z": 26
};
var iEncoded = 0, sEncoded;
for (var i in sUserID) {
var sEval = "oAlphabets."+sUserID[i];
iEncoded = iEncoded + eval(sEval);
}
if(iEncoded <100){
sEncoded = "0"+iEncoded;
}
else{
sEncoded = ""+iEncoded;
}
它在Chrome中按预期工作并返回结果078.但是,它给出了错误“预期;”在IE 11中。
这里有什么问题以及如何摆脱它..
问候,
法赫德·汉莎
使用eval是没有理由的。只需使用括号表示法就像它与变量一起使用。
iEncoded += oAlphabets[sUserID[i]];