用于求和的字符串到数字

String to number for sum

本文关键字:数字 字符串 和的 求和 用于      更新时间:2023-09-26

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

 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   
 }

使用这种方法的原因是我在数组中传递了一个字符串和。如果它不是一个字符串值,那么传递它就会出错。然后我需要计算和并返回答案。

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

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

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
}

也就是说,我们确实需要更多的信息来帮助你。