distinct

lst:distinct()

<lst>:distinct(foo(item, pos))

Rimuove gli elementi duplicati. Utilizza la funzione di comparazione del lua (==) nella prima versione. Attenzione: le tabelle non vengono confrontate per contenuto ma per riferimento. Quindi due tabelle identiche per contenuto risultano diverse per il comparatore. Nel secondo caso è possibile passare la funzione che genera una key univoca per il confronto degli elementi.

Esempio 221. Esempio distinct

alert(XTable({"a","a","b", "c", "d", "d", "d", "e"}):distinct():astable())
? {"a", "b", "c", "d", "e"}
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 a = XTable(orders)
      -- rimuove gli ementi duplicati ignorando l'id
      :distinct(function(item, pos) return format("%s-%d-%d", item.product, item.price, item.year) end)     
      :astable()
? {
      {id=1, product="Book",     price=50,   year=2012},
      {id=3, product="TV",       price=800,  year=2011},
      {id=5, product="Computer", price=1000, year=2010},
    }







distinct

lst:distinct()

<lst>:distinct(foo(item, pos))

Rimuove gli elementi duplicati. Utilizza la funzione di comparazione del lua (==) nella prima versione. Attenzione: le tabelle non vengono confrontate per contenuto ma per riferimento. Quindi due tabelle identiche per contenuto risultano diverse per il comparatore. Nel secondo caso è possibile passare la funzione che genera una key univoca per il confronto degli elementi.

Esempio 221. Esempio distinct

alert(XTable({"a","a","b", "c", "d", "d", "d", "e"}):distinct():astable())
--> {"a", "b", "c", "d", "e"}
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 a = XTable(orders)
      -- rimuove gli ementi duplicati ignorando l'id
      :distinct(function(item, pos) return format("%s-%d-%d", item.product, item.price, item.year) end)     
      :astable()
--> {
      {id=1, product="Book",     price=50,   year=2012},
      {id=3, product="TV",       price=800,  year=2011},
      {id=5, product="Computer", price=1000, year=2010},
    }


Created with the Personal Edition of HelpNDoc: Create help files for the Qt Help Framework