I want to sum the property values of PieData
. My expected output is
25515512+916952499 = 942468011
PieData is an array with 2 elements, each element being a HashTable. you can sum them up by saying:
var sum = PieData[0]["value] + PieData[1]["value"]
If you have more elements or simply want to use a loop:
var sum=0;
for(var i=0;i<PieData.length;i++){
sum+=PieData[i]["value"];
}
You could use the native method Array#reduce for it.
var PieData = [{ value: 25515512, color: "#00a65a", highlight: "#00a65a", label: "Received Fund" }, { value: 916952499, color: "#f56954", highlight: "#f56954", label: "Pending Fund" }],
sum = PieData.reduce(function (s, a) {
return s + a.value;
}, 0);
console.log(sum);
ES6
var PieData = [{ value: 25515512, color: "#00a65a", highlight: "#00a65a", label: "Received Fund" }, { value: 916952499, color: "#f56954", highlight: "#f56954", label: "Pending Fund" }],
sum = PieData.reduce((s, a) => s + a.value, 0);
console.log(sum);
Things to change:
0
because +
operator on string concatenates the values.$.each
loops over the object passed, So you can directly access that in callback to calculate sum.Sample Snippet:
var PieData = [{
value: 25515512,
color: "#00a65a",
highlight: "#00a65a",
label: "Received Fund"
}, {
value: 916952499,
color: "#f56954",
highlight: "#f56954",
label: "Pending Fund"
}];
//calculating total
var total = 0;
$.each(PieData, function(index, value) {
total += value.value;
})
alert(total)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
var PieData = [{
value: 25515512,
color: "#00a65a",
highlight: "#00a65a",
label: "Received Fund"
}, {
value: 916952499,
color: "#f56954",
highlight: "#f56954",
label: "Pending Fund"
}],
userSelectedColors = ['value'];
var totalCount = _.sumBy(userSelectedColors, _.partial(_.sumBy, PieData));
console.log(totalCount);
<script src="https://cdn.jsdelivr.net/lodash/4.13.1/lodash.min.js"></script>
You can use javascript forEach() method like following.
var PieData = [
{
value: 25515512,
color: "#00a65a",
highlight: "#00a65a",
label: "Received Fund"
},
{
value: 916952499,
color: "#f56954",
highlight: "#f56954",
label: "Pending Fund"
}
];
var sum = 0;
PieData.forEach(function(item){
sum += item.value;
})
console.log(sum)