将字符串转换为ASCII值
问题描述:
我试图在S1和S2(字符串)中添加每个元素的ASCII值,并且如果它们彼此相等,则返回true。我只能似乎得到每个字符串用下面的代码的第一个元素的ASCII值:将字符串转换为ASCII值
function compare(s1, s2) {
var splitS1 = s1.toUpperCase().split("");
var splitS2 = s2.toUpperCase().split("");
for (var i = 0; i < splitS1.length; i++) {
for (var j = 0; j < splitS2.length; j++) {
var sum1 = 0;
var sum2 = 0;
sum1 += splitS1[i].charCodeAt(0);
sum2 += splitS2[j].charCodeAt(0);
return sum1 === s2;
}
}
}
答
的return
语句是第一循环结束时的功能。相反,只有在失败时才应该返回。
function compare(s1, s2) {
var splitS1 = s1.toUpperCase().split("");
var splitS2 = s2.toUpperCase().split("");
for (var i = 0; i < splitS1.length; i++) {
for (var j = 0; j < splitS2.length; j++) {
if (splitS1[1].charCodeAt(0) === splitS2[j].charCodeAt(0)) {
return false;
}
}
}
return true;
}
答
的问题是在这行代码:
return sum1 === s2;
你应该比较它sum2
return sum1 === sum2;
工作例如:https://repl.it/FrI2
编辑:
由于s2
是字符串本身,而sum2
是ASCII和。