# Sum up "field num" in Types

1. ##### Yi
6 posts
Member since:
Jul 2013

Posted 13 Jan 2014 Link to this post

In my project, the Type "Activities" has a field, which is "num". How to sum up these numbers of all items ?
Is there a way to fetch the items in Type one by one in the cloud code?

For example, how to sum up the numbers from 41 to 37 in the attached?

2. ##### Anton Dobrev
600 posts

Posted 15 Jan 2014 Link to this post

Hi Yi,

We have prepared two examples:
•   the first returns the sum of all the items in the content type
•   the second returns the sum of all items for the current response

Both approaches are using a helper function that iterates over the items and returns the sum of the fields. It looks like this:
`function ``sumArray(arr){`
`  ``var ``len = arr.length;`
`  ``var ``i;`
`  ``var ``sum = 0;`
`  ``var ``radix = 10;`
`  ``for``(i = 0; i < len; i++){`
`    ``sum += parseInt(arr[i].Num, radix);`
`  ``}`
`  `
`  ``return ``sum;`
`}`

1. If you want to explicitly sum all the items in the content type and return their sum, please add the following code in the appropriate event in the cloud code:

`var ``data = Everlive.Sdk.\$.data(``'Activities'``);`
`    ``data.get().`
`    ``then(``function ``(data) {`
`          ``response.additionalData.TotalCount = sumArray(data.result);`
`            ``done();`
`        ``},`
`        ``function ``(err) {`
`            ``done();`
` ``});`

2. The next example sums up only the items returned for the current response(for example you can have a filter applied before retrieving the items, or retrieving all items).
`Everlive.Events.afterRead(``function``(request, response, context, done) {`
`  ``var ``responseResult = response.result;`
`  ``if``(responseResult){`
`    ``if``(!Array.isArray(responseResult)){`
`      ``responseResult = [responseResult];`
`    ``}`
`     ``response.additionalData.TotalSum = sumArray(responseResult);`
`  ``}`
`    ``done();`
`});`

Please, let us know if these examples are helpful for you. If you need more details or an implementation of a more specific scenario, do not hesitate to contact us.

Regards,
Anton Dobrev
Telerik