sum

<seq>:sum()

<seq>:sum(field)

<seq>:sum(function(item, pos))

Esegue la somma degli elementi della lista. Se non viene passato nulla somma solo gli elementi di tipo numerico. Se viene passata una stringa allora si intende il nome del campo dell'item della lista. Se viene passata una funzione allora il valore di ritorno dalla funzione viene sommato.

Esempio sum

local a = {"a", 1, "b", 2}
local res = XTable(a):sum()
--> 3
local orders = {
  {id=1, product="Computer", price=1000, year=2010},
  {id=1, product="Book",     price=50,   year=2012},
  {id=3, product="TV",       price=800,  year=2011},
  {id=5, product="Computer", price=1000, year=2010},
  ...  
}  
local res = XTable(orders):sum('price')
--> 2850
local res = XTable(orders)
  :sum(function(item, pos)
       return item.product=="Computer" and item.price or 0;
     end)
--> 2000