2

HTMLスクリプト内にsrc Javaスクリプトを挿入し、square1というラベルの付いたIDを持つテーブルを作成しました...たとえば<td id="square0">apple;</td>. 、HTMLファイルにある単語のアルファベットの合計をjavascriptに表示させたいです。たとえば、a が 1、b が 2、c が 3、d が 4...z が 26 の場合、リンゴは 50、ニンジンは 75 などです。出力をリンゴ50、ニンジン75、イエロー92のようにしたい

私が試したJavaスクリプトは

var a = 1;
var b = 2;
...
...
var z = 26;
var addWord = new Array(1);
addWord[1] = "apple";
var square01 = 1 + 16 + 16 + 12 + 5;

function() {
    var total = 0;
    for (var i = 0; i < word.length; i++)
    total += alphabet[word[i]];
    document.getElementById(square0).innerHTML;
}
}

どうもありがとうございました。

4

5 に答える 5

3

これがあなたが必要とするものです。

var word = "Apple"
var sum = 0;
word.toUpperCase().split('').forEach(function(alphabet) {
    sum += alphabet.charCodeAt(0) - 64;
});
console.log(sum);

コンピュータでの説明 文字は、65 - "A" 、66 - "B" 、97 - "a" 、98 - "b" のような特定の値を持つ数値定数と見なされます。

ここで行ったことは、単語を大文字に変換した後に文字に分割することです。

"りんご"

そして、charCodeAt(0) 呼び出しによって各文字の値を見つけました。それから 64 を引いて、要件に応じた文字の値を取得します。

A - > 65- 64 = 1 B - > 66- 64 = 2

等々。

于 2012-07-29T09:07:31.693 に答える
2

次のように単語の合計を計算できます。

var word = "apple";
var sum = 0;
for (var i = 0; i < word.length; ++i) {
    sum += word.charAt(i).toLowerCase().charCodeAt(0) - 96;
}
//sum is 50
于 2012-07-29T09:06:43.317 に答える
0

.charCodeAt()文字の ASCII 値を取得するために使用します。結果から 96 を引くと、a = 1、b = 2... が得られます。

例えば:

var word = "apple";
var sum = 0;

for(var i = 0; i < word.length; i++) {
    sum += (word[i].charCodeAt() - 96);
}
console.log(sum);​

JSFiddle

大文字も扱いたい場合は、いくつかのチェックを行う必要があります。

于 2012-07-29T09:06:51.647 に答える
0

アビシェークの答えはより読みやすいですが、これはreduce;でそれを行う方法です。それはわずかに短いですが、JavaScript の構文で0は の初期値が不明確になりsumます。

'Apple'.toUpperCase().split('').reduce(
    function(sum,letter){ return sum + letter.charCodeAt(0)-64 },
    0
)
于 2012-07-29T09:50:24.527 に答える
-1

これは文字「a」..「z」で機能します。

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script type="text/javascript">
        function calcAlpha() {
            var word = document.getElementById("square0").childNodes[0].data;
            var sum = 0;
            for(var i=word.length-1; i>=0; i--) {
                sum += (word.charCodeAt(i) - 96);
            }
            document.getElementById("display").innerHTML=sum;
        }
    </script>
</head>
<body>
    <table><tr><td id="square0">apple</td></tr></table>
    <div id="display"></div>
    <button onclick="calcAlpha()">calculate</button>
</body>
</html>
于 2012-07-29T09:11:05.253 に答える