如何将以下字符串转换为总和?
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
}
这种方法的原因是我在数组中传递了一个字符串和。如果它不是字符串值,那么它不能没有错误地传递。然后我需要评估总和并返回答案。
答案 0 :(得分:1)
sums[0]
是Object
。 str
应为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
}
尽管如此,我们确实需要更多信息来帮助您。