5

文字列の左側を追加し、右側に対して検証するスクリプトを作成しようとしています。

例えば:

var left = "12345"
var right = "34567"

1+2+3+4+5 を加算し、それが 3+4+5+6+7 に等しいかどうかをチェックする何らかの sum 関数を実行する必要があります。

私はそれを行う方法の手がかりがありません。

for (var i = 0, length = left.length; i < length; i++) などの数値を反復処理するには、for ループを使用する必要があると思います。

しかし、そこから各番号を追加する方法がわかりません。

編集変数は実際にフィールドから取り込まれています。だから var left = document.blah.blah

4

3 に答える 3

8

デモ

var left = "12345"
var right = "12345"

function add(string) {
    string = string.split('');                 //split into individual characters
    var sum = 0;                               //have a storage ready
    for (var i = 0; i < string.length; i++) {  //iterate through
        sum += parseInt(string[i],10);         //convert from string to int
    }
    return sum;                                //return when done
}

alert(add(left) === add(right));​
于 2012-04-07T06:18:25.103 に答える
1
var sum = function(a,b){return a+b}

function stringSum(s) {
    var int = function(x){return parseInt(x,10)}
    return s.split('').map(int).reduce(sum);
}

stringSum(a) == stringSum(b)
于 2012-04-07T06:40:58.457 に答える
1
  1. 文字列の長さを見つける
  2. 次に、一時変数に値 pow(10,length-1) を格納します
  3. モジュール関数 (left%temp) を適用すると、最後の有効数字が得られます
  4. この数字を使用して追加できます
  5. 左の文字列の長さが 0 になるまでプロセスを繰り返します。 6 上記のすべての手順を右についても繰り返し、値を比較します。

注: parseInt 関数を使用して文字列を int に変換します

于 2012-04-07T06:20:24.703 に答える