SUM数组json如何使用jquery

时间:2016-01-13 03:14:58

标签: jquery json

如何使用jQuery对这样的JSON数组元素进行求和:

{"formulagram":"470+6,7+33,5+236,2+4,5+0,3"}

,结果应为:

总计: 751,2

使用逗号标识,+是标记符。

谢谢

3 个答案:

答案 0 :(得分:1)

尝试这个:

var objForm = {
    formulagram:"470+6,7+33,5+236,2+4,5+0,3"
};

var str= objForm.formulagram;

str = str.split(',').join('.').split('+');

var total = 0;
$.each(str,function() {
    total += parseFloat(this);
});

total = Math.round(total * 100) / 100;

total = total.toString().replace('.',',');

console.log(total);

我在下面创建了一个演示:



var objForm = {
  formulagram: "470+6,7+33,5+236,2+4,5+0,3"
};

var str = objForm.formulagram;

str = str.split(',').join('.');

$('#splitbyComma').html(str);

str = str.split('+');

var total = 0;
$.each(str, function() {
  total += parseFloat(this);
});

total = Math.round(total * 100) / 100;

total = total.toString().replace('.',',');

$('#result').html(total);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p>Replace Comma with dot (.)</p>
<p id="splitbyComma"></p>
<p><strong>Total:</strong>
</p>
<p id="result"></p>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

你必须更换角色&#39;,&#39;为&#39;。&#39;表示浮动数字。然后你可以使用eval。

代码:

var str= "470+6.7+33.5+236.2+4.5+0.3";
var sum = parseFloat(eval(str));

您必须小心,因为使用eval会有风险。阅读此帖子中的更多内容Why is using the JavaScript eval function a bad idea?

答案 2 :(得分:0)

这是一个更加迂回但自动化的方式:

var formulaObject = JSON.parse({"formulagram":"470+6,7+33,5+236,2+4,5+0,3"})
var formulaString = formulaObject.formulagram
var formulaPoint = formulaString.replace(',', '.')
var formulaArray = formulaPoint.split('+')
var formulaSum = formulaArray.reduce(function(prev, cur) {
    return prev + parseFloat(cur)
}, 0)