javascript中一串一位数字的总和?

时间:2012-04-07 06:13:04

标签: javascript

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

例如:

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

3 个答案:

答案 0 :(得分:8)

DEMO

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));​

答案 1 :(得分: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)

答案 2 :(得分:0)

  1. 查找字符串的长度
  2. 然后在temp变量存储值pow(10,length-1)
  3. 如果您应用模块功能(左%temp),您将获得最后一位有效数字
  4. 您可以使用此数字添加
  5. 重复该过程,直到剩下的字符串长度为0 6同样重复上述所有步骤,然后比较值
  6. 注意:使用parseInt函数将字符串转换为int