嗨,我将使用多个序列,所以我使用了这种方法。现在,它会为字母获取适当的数字,我可以输入单词并将其相加,但是使用空格时我会得到NaN。我如何才能在不输入NaN的情况下用空格键入单词?
<html>
<body>
Word: <input type="text" name="fname" id="txt" value="Type a word..."><br><br>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
</body>
</html>
function myFunction() {
var alphabet = {
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 str = document.getElementById("txt").value;
var total = 0;
for (var i = 0; i < str.length; i++)
total += alphabet[str[i]];
alert(total);
document.getElementById("demo").innerHTML = total;
}
答案 0 :(得分:1)
在' '
对象中为alphabet
映射一个值:
var alphabet = {
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,
' ': 42
}
答案 1 :(得分:1)
您可以在字母地图中添加一个' '
(空格键),并将其值设置为0
。
function myFunction() {
var alphabet = {
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,
' ': 0
};
var str = document.getElementById("txt").value;
var total = 0;
for (var i = 0; i < str.length; i++)
total += alphabet[str[i]];
alert(total);
document.getElementById("demo").innerHTML = total;
}
Word: <input type="text" name="fname" id="txt" value="Type a word..."><br><br>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
答案 2 :(得分:1)
对于未定义的字母(例如空格或其他字符),您可以使用零作为默认值。
这与logical OR ||
一起使用,测试第一个操作数,如果它是falsy,例如undefined
或零或空白''
(以及其他一些数字) ,则将另一个操作数(在本例中为零)作为要添加到total
的值。
total += alphabet[str[i]] || 0;
// ^^^^
function myFunction() {
var alphabet = { 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 },
str = document.getElementById("txt").value,
total = 0;
for (var i = 0; i < str.length; i++) {
total += alphabet[str[i]] || 0;
}
document.getElementById("demo").innerHTML = total;
}
Word: <input type="text" name="fname" id="txt" placeholder="Type a word..."><br><br>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>