Ir al contenido

Módulo:Tablas/doc

Desde Chavacano de Zamboanga Wikipedia - El Libre Enciclopedia

Esta es la página de documentación de Módulo:Tablas

Todas las funciones del módulo se llaman desde Lua.

Las funciones son:

tostring(tabla)
Convierte la tabla en una cadena de caracteres.
elemento(tabla, indice1, indice2, ..., indicen)
Devuelve el elemento tabla[indice1][indice2]...[indicen]
en(tabla, valor)
Devuelve la clave del elemento de tabla con ese valor si el elemento pertenece a la tabla.
insertar(tabla, elemento)
Inserta el elemento en la tabla si no está ya incluido.
Parámetros:
  • tabla: Tabla lua. Obligatorio.
  • elemento: Elemento a insertar. Optativo
Valor devuelto: La función devuelve true si el elemento a insertar está informado (no es nil) y false si no se le pasa ningún elemento a insertar.
copiarElementosConValor(tabla)
Devuelve una copia de la tabla eliminando los elementos sin valor
sonIguales(tabla1, tabla2)
Devuelve si las dos tablas son iguales.
ordenar(tabla, función)
Ordena la tabla utilizando la función. Similar a la función sort de table pero es estable.
agrupar(tabla, clave, campo)

ordenar(tabla, función)

[hace edit con el source]

Función para ordenar una tabla de forma estable. La función permite además ordenar valores nulos que se sitúan al principio de la tabla ordenada. Por ejemplo, si tenemos:

local moduloTablas = require('Módulo:Tablas') 
  local ordenarTabla = moduloTablas.ordenar

local t = {
  [1] = {
    ["id"] = "Q255032", 
    ["anyo"] = "1965"
  }, 
  [2] = {
    ["id"] = "Q936683", 
    ["anyo"] = "1967"
  }, 
  [3] = {
    ["id"] = "Q1056265", 
    ["anyo"] = "1968"
  }, 
  [4] = {
    ["id"] = "Q1086189", 
    ["anyo"] = "1970"
  }, 
  [5] = {
    ["id"] = "Q549884", 
    ["anyo"] = "1970"
  }, 
  [6] = {
    ["id"] = "Q549884", 
    ["anyo"] = "1971"
  }, 
  [7] = {
    ["id"] = "Q610903", 
    ["anyo"] = "1975"
  }, 
  [8] = {
    ["id"] = "Q1056251", 
    ["anyo"] = "1976"
  }, 
  [9] = {
    ["id"] = "Q3405406", 
    ["anyo"] = "1976"
  }, 
  [10] = {
    ["id"] = "Q3625727", 
    ["anyo"] = "1976"
  }, 
  [11] = {
    ["id"] = "Q898527", 
    ["anyo"] = "1978"
  }, 
  [12] = {
    ["id"] = "Q901462", 
    ["anyo"] = "1981"
  }, 
  [13] = {
    ["id"] = "Q3910469", 
    ["anyo"] = "1987"
  }, 
  [14] = {
    ["id"] = "Q255032", 
    ["anyo"] = "1958"
  }
}

local t2 = ordenarTabla(t, {'id', 'anyo'})

t2 será igual a:

{
  [1] = {
    ["anyo"] = "1976", 
    ["id"] = "Q1056251"
  }, 
  [2] = {
    ["anyo"] = "1968", 
    ["id"] = "Q1056265"
  }, 
  [3] = {
    ["anyo"] = "1970", 
    ["id"] = "Q1086189"
  }, 
  [4] = {
    ["anyo"] = "1958", 
    ["id"] = "Q255032"
  }, 
  [5] = {
    ["anyo"] = "1965", 
    ["id"] = "Q255032"
  }, 
  [6] = {
    ["anyo"] = "1976", 
    ["id"] = "Q3405406"
  }, 
  [7] = {
    ["anyo"] = "1976", 
    ["id"] = "Q3625727"
  }, 
  [8] = {
    ["anyo"] = "1987", 
    ["id"] = "Q3910469"
  }, 
  [9] = {
    ["anyo"] = "1970", 
    ["id"] = "Q549884"
  }, 
  [10] = {
    ["anyo"] = "1971", 
    ["id"] = "Q549884"
  }, 
  [11] = {
    ["anyo"] = "1975", 
    ["id"] = "Q610903"
  }, 
  [12] = {
    ["anyo"] = "1978", 
    ["id"] = "Q898527"
  }, 
  [13] = {
    ["anyo"] = "1981", 
    ["id"] = "Q901462"
  }, 
  [14] = {
    ["anyo"] = "1967", 
    ["id"] = "Q936683"
  }
}

agrupar(tabla, clave, campo)

[hace edit con el source]

Función para agrupar los elementos de la tabla con la misma clave. La tabla debe ordenarse previamente. En el ejemplo anterior el código:

  local agruparTabla = moduloTablas.agrupar

local t3 = agrupar(t2, 'id', 'anyo')

hará que la tabla t3 valga:

{
  [1] = {
    ["anyo"] = {
      [1] = "1976"
    }, 
    ["id"] = "Q1056251"
  }, 
  [2] = {
    ["anyo"] = {
      [1] = "1968"
    }, 
    ["id"] = "Q1056265"
  }, 
  [3] = {
    ["anyo"] = {
      [1] = "1970"
    }, 
    ["id"] = "Q1086189"
  }, 
  [4] = {
    ["anyo"] = {
      [1] = "1958", 
      [2] = "1965"
    }, 
    ["id"] = "Q255032"
  }, 
  [5] = {
    ["anyo"] = {
      [1] = "1976"
    }, 
    ["id"] = "Q3405406"
  }, 
  [6] = {
    ["anyo"] = {
      [1] = "1976"
    }, 
    ["id"] = "Q3625727"
  }, 
  [7] = {
    ["anyo"] = {
      [1] = "1987"
    }, 
    ["id"] = "Q3910469"
  }, 
  [8] = {
    ["anyo"] = {
      [1] = "1970", 
      [2] = "1971"
    }, 
    ["id"] = "Q549884"
  }, 
  [9] = {
    ["anyo"] = {
      [1] = "1975"
    }, 
    ["id"] = "Q610903"
  }, 
  [10] = {
    ["anyo"] = {
      [1] = "1978"
    }, 
    ["id"] = "Q898527"
  }, 
  [11] = {
    ["anyo"] = {
      [1] = "1981"
    }, 
    ["id"] = "Q901462"
  }, 
  [12] = {
    ["anyo"] = {
      [1] = "1967"
    }, 
    ["id"] = "Q936683"
  }
}