Scrabble-将字母值与jquery一起添加

Scrabble-将字母值与jquery一起添加,jquery,html,Jquery,Html,嗨,我想做一个拼字游戏 我想给每个字母一个值,然后如果输入框改变,将它们相加 我做了一次搜索,找到了如何在更改时求和数字,但我真的很难找到如何用数字替换字母的值。以下是我修改过的一些代码: $(document).on("change", "input[id ^= 'r1box']", function() { var sum = 0; $("input[id ^= 'r1box']").each(function(){ sum += +$(this).val

嗨,我想做一个拼字游戏

我想给每个字母一个值,然后如果输入框改变,将它们相加

我做了一次搜索,找到了如何在更改时求和数字,但我真的很难找到如何用数字替换字母的值。以下是我修改过的一些代码:

$(document).on("change", "input[id ^= 'r1box']", function() {

    var sum = 0;

    $("input[id ^= 'r1box']").each(function(){
        sum += +$(this).val();
    });

    $("#r1totbox_id").val(sum);
});
我有7个盒子,其id以“r1box”开头,然后是一个总的盒子,id为“r1totbox\u id”。现在,如果我把数字放进去,我会得到一个总数,但我希望能把‘a’放进框1,把‘b’放进框2,得到总数4

谢谢你的帮助

var convert_letters_to_numbers(letter) {
    letter = letter.toLowerCase(); //this prevents any case-sensitive problem
    if (letter == 'a') return 1;
    ...
    /* etc etc etc */
}
然后,在代码中:

sum += convert_letters_to_numbers($(this).val());   
这假设你在每场比赛中使用相同的值。如果您想使它成为动态的,您应该添加一个映射字典(或者更好,添加一个json对象,以便您可以在其他地方生成它们)

然后遍历它并返回相应的值

你最后的评论是:

var dictionary = {"a":1, "b":2};
convert函数只需执行一个简单的返回语句:

return dictionary[letter];

并且不需要循环

您需要一个数组映射字母来拼凑点值():

然后,您可以通过转换为大写并从ASCII码值中减去65(A),将输入与正确的点值进行匹配,以获得点数组的索引:

var letter = $(this).val().toUpperCase();
if (letter.length == 1) {
    var letterIndex = letter.charCodeAt(0) - 65;
    sum += points[letterIndex];
}

演示:

目前如何将字母与值联系起来?我可以为您提供一个解决方案,但我不确定它是否适合您我正在尝试使用关联数组,然后使用.each进行迭代。任何解决方案都会有帮助:)非常感谢你——我从来没有想过这样做!感谢您的快速回复-非常感谢您的帮助:D
var points = [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];
var letter = $(this).val().toUpperCase();
if (letter.length == 1) {
    var letterIndex = letter.charCodeAt(0) - 65;
    sum += points[letterIndex];
}