5

我正在尝试编写一个添加字符串左侧并针对右侧验证它的脚本。

例如:

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

我需要做某种求和函数,将 1+2+3+4+5 相加并检查它是否等于 3+4+5+6+7。

我只是不知道该怎么做。

我想我需要使用 for 循环来遍历数字,例如 for (var i = 0, length = left.length; i < length; i++)

但我不确定如何从那里添加每个数字。

编辑var 实际上是从字段中提取的。所以 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
  1. 查找字符串的长度
  2. 然后在一个临时变量中存储值 pow(10,length-1)
  3. 如果你应用模块函数 (left%temp) 你会得到最后一个有效数字
  4. 您可以使用此数字添加
  5. 重复这个过程,直到左边的字符串长度为 0 6 对右边的字符串也重复上述所有步骤,然后比较值

注意:使用 parseInt 函数将字符串转换为 int

于 2012-04-07T06:20:24.703 回答
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 回答