Javascript 计算一个单词的拼字分数 letter=prompt(“请输入一个单词”); letter=letter.toUpperCase(); //定义字母和相应的分数 字母表=['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’] 字母表核心=[1,3,3,2,1,4,2,4,1,8,5,1,3,1,1,3,10,1,1,1,1,4,4,8,4,10] //起始和 总和=0 对于(i=0;i

Javascript 计算一个单词的拼字分数 letter=prompt(“请输入一个单词”); letter=letter.toUpperCase(); //定义字母和相应的分数 字母表=['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’] 字母表核心=[1,3,3,2,1,4,2,4,1,8,5,1,3,1,1,3,10,1,1,1,1,4,4,8,4,10] //起始和 总和=0 对于(i=0;i,javascript,Javascript,可能更仔细地观察这条线 letter = prompt("Enter a word please"); letter = letter.toUpperCase(); // define letters and respective scores alphabet = ['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'] alphabe

可能更仔细地观察这条线

letter = prompt("Enter a word please");
letter = letter.toUpperCase();

// define letters and respective scores
alphabet = ['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']
alphabetScore = [1, 3, 3, 2, 1, 4, 2, 4, 1, 8, 5, 1, 3, 1, 1, 3, 10, 1, 1, 1, 1, 4, 4, 8, 4, 10]

// start sum
sum=0

for (i=0; i<alphabet.length; i++)
{
switch(letter) 
        {
        case (alphabet[i]): sum+=alphabetScore[i]; break;
        default: sum=sum+0;
        }
}   
alert (sum);

是吗?

也许可以仔细看看线路

letter = prompt("Enter a word please");
letter = letter.toUpperCase();

// define letters and respective scores
alphabet = ['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']
alphabetScore = [1, 3, 3, 2, 1, 4, 2, 4, 1, 8, 5, 1, 3, 1, 1, 3, 10, 1, 1, 1, 1, 4, 4, 8, 4, 10]

// start sum
sum=0

for (i=0; i<alphabet.length; i++)
{
switch(letter) 
        {
        case (alphabet[i]): sum+=alphabetScore[i]; break;
        default: sum=sum+0;
        }
}   
alert (sum);

是吗?

你把整个单词当作一个字母来对待,并试图找到它在字母表中的位置。因为它根本不在字母表中,所以你得到零。相反,你需要循环单词的字母。

你把整个单词当作一个字母来对待,并试图找到它在字母表中的位置。因为它根本不在字母表中,你得到零。相反,你需要循环单词的字母。

这不是使用开关的合适方式

switch
通常用于替换几个相应的
if…else if…else if…else
。就这么简单。在您的情况下,您只需要在循环中使用一个
if
语句。实际上,您需要一个双循环

switch(letter) 

祝你好运。

这不是使用开关的合适方式

switch
通常用于替换几个相应的
if…else if…else if…else
。就这么简单。在您的情况下,您只需要在循环中使用一个
if
语句。实际上,您需要一个双循环

switch(letter) 

祝你好运。

尝试将字母与其拼字点值之间的关系建模为关联数组,而不是两个平行数组:

for each letter in the word
  for each letter in the alphabet
    if they match
      increment score
var word=prompt(“请输入单词”);
word=word.toUpperCase();
分数={'A':1,'B':3,'C':3,/*…*/'Z':10};
var总和=0;
对于(变量i=0;i
尝试将字母与其拼字点值之间的关系建模为关联数组,而不是两个平行数组:

for each letter in the word
  for each letter in the alphabet
    if they match
      increment score
var word=prompt(“请输入单词”);
word=word.toUpperCase();
分数={'A':1,'B':3,'C':3,/*…*/'Z':10};
var总和=0;
对于(变量i=0;i
sum=0;
对于(变量i=0,l=letter.length;i
sum=0;

对于(var i=0,l=letter.length;i您可以通过以对象(也称为关联数组)的形式定义分数来避免在单词中每个字母的整个字母表上循环。此外,您的“letter”变量实际上是整个单词,因此您需要单独循环字母。以下结合了这两个想法:

sum = 0;
for(var i=0,l=letter.length;i<l;i++)
    sum += alphabetScore[alphabet.indexOf(letter[i])] 
var word=prompt(“请输入单词”);
word=word.toUpperCase();
变量字母={
答:1,,
B:3,
C:3,
D:2,
E:1,
F:4,
G:2,
H:4,
一:1,,
J:8,
K:5,
L:1,
M:3,
N:1,
O:1,
P:3,
问:10,,
R:1,
S:1,
T:1,
U:1,
五:四,,
W:4,
X:8,
Y:4,
Z:10
}
变量字母i,总和=0;
for(i=0;i
通过以对象(也称为关联数组)的形式定义分数,可以避免在单词中每个字母的整个字母表上循环。此外,您的“字母”变量实际上是整个单词,因此您需要逐个循环字母。以下结合了这两个思想:

sum = 0;
for(var i=0,l=letter.length;i<l;i++)
    sum += alphabetScore[alphabet.indexOf(letter[i])] 
var word=prompt(“请输入单词”);
word=word.toUpperCase();
变量字母={
答:1,,
B:3,
C:3,
D:2,
E:1,
F:4,
G:2,
H:4,
一:1,,
J:8,
K:5,
L:1,
M:3,
N:1,
O:1,
P:3,
问:10,,
R:1,
S:1,
T:1,
U:1,
五:四,,
W:4,
X:8,
Y:4,
Z:10
}
变量字母i,总和=0;
for(i=0;i
你正在做的是
sum=sum+0;
,我不懂Javascript,所以我不知道
default:
是什么意思,但我看不到sum的任何其他增量。我想让JS循环一个给定的单词,根据字母表,它应该将数字加到总数中以产生分数。例如:ABB应该给7分!一个
开关
语句只有一个
大小写
和一个
默认值
if
/
else
-我知道你在试验,但这是一个非常糟糕的模式。你在做
sum=sum+0;
,我不知道Javascript,所以我不知道
默认值:
我ans,但我没有看到任何其他sum的增量。我希望JS循环给定的单词,并根据字母表将数字添加到总数中以产生分数。例如:ABB应该给出7分!一个
开关
语句只有一个
大小写
,而
默认值
如果
/
其他
-我知道你在试验,但这是一个非常糟糕的模式。或者,更好的是,
用于(I=0;I混合了什么?或者,更好的是,
用于(I=0;I混合了什么?Javascript中没有关联数组。你描述的东西称为对象:)您可能知道,计算实际的scrablle分数需要考虑另外两件事:电路板特殊瓷砖(双字/双字母等)以及计算创建的交叉词的额外分数。OP似乎并不担心这一点。Javascript中没有关联数组。您正在描述的东西称为对象:)您可能知道计算实际的Scrable分数需要考虑两件事:B