字符串到sum的数字

时间:2014-06-17 12:47:38

标签: javascript string

如何将以下字符串转换为总和?

 var sums = [{sum:"0+0=0"},{sum:"1+0=1"}

 var str = sums[0].sum;

 var sum = 0;

 for(i=0;i<str.length;i++){
     var n = parseInt(str[i])
     sum += n;//Help   
 }

这种方法的原因是我在数组中传递了一个字符串和。如果它不是字符串值,那么它不能没有错误地传递。然后我需要评估总和并返回答案。

2 个答案:

答案 0 :(得分:1)

sums[0]Objectstr应为sums[0].sum,并且有效。

但是!如果数字超过1位,您当前的实现将失败。更安全的方法是拆分该字符串:

var sums = [{sum:"0+0=0"},{sum:"1+0=1"}]
var str = sums[0].sum;

// Detecting operator
var operator;
if ( str.indexOf( '+' ) ) operator = '+';
if ( str.indexOf( '-' ) ) operator = '-';
if ( str.indexOf( '*' ) ) operator = '*';
if ( str.indexOf( '/' ) ) operator = '/';

var chunks = str.split( operator );

var firstOperand = parseInt( chunks[0] );
var secondOperand = parseInt( chunks[1].split('=')[0] );

var result;
switch ( operator ) {
    case '+':
        result = firstOperand + secondOperand; break;
    case '-':
        result = firstOperand - secondOperand; break;
    case '*':
        result = firstOperand * secondOperand; break;
    case '/':
        result = firstOperand / secondOperand; break;
    default: break;
}

console.log( 'RESULT:', result );

答案 1 :(得分:0)

假设您想要求和的每个字符串的一部分是=之后的部分:

var sum = 0;
var n = 0;
var result = "";

for(i=0; i<str.length; i++){
  n = str[i].sum.lastIndexOf('=');
  result = str[i].sum.substring(n + 1);

  sum += parseInt(result, 10); // don't forget to specify radix
}

尽管如此,我们确实需要更多信息来帮助您。