<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>https://dicionario.advogadocompleto.com/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3ATableTools%2Fdoc</id>
	<title>Módulo:TableTools/doc - Histórico de revisão</title>
	<link rel="self" type="application/atom+xml" href="https://dicionario.advogadocompleto.com/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3ATableTools%2Fdoc"/>
	<link rel="alternate" type="text/html" href="https://dicionario.advogadocompleto.com/index.php?title=M%C3%B3dulo:TableTools/doc&amp;action=history"/>
	<updated>2026-05-15T18:02:27Z</updated>
	<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://dicionario.advogadocompleto.com/index.php?title=M%C3%B3dulo:TableTools/doc&amp;diff=272&amp;oldid=prev</id>
		<title>Itaymbere: Criou página com &#039;&lt;section begin=header /&gt; {{#ifeq:{{#invoke:String|find|{{FULLPAGENAME}}|Testes}}|0|&lt;includeonly&gt;{{alto-risco|113000}}&lt;/includeonly&gt;}} &lt;section end=header /&gt; &lt;!----&gt; {{Lua|Módulo:Exponential search|noprotcat=yes}} Este módulo inclui várias funções para lidar com tabelas Lua. É um metamódulo, destinado a ser chamado a partir de outros módulos Lua e não deve ser chamado diretamente a partir de &quot;#invoke&quot;.  ==Carregando o módulo== Para usar qualquer uma das funçõe...&#039;</title>
		<link rel="alternate" type="text/html" href="https://dicionario.advogadocompleto.com/index.php?title=M%C3%B3dulo:TableTools/doc&amp;diff=272&amp;oldid=prev"/>
		<updated>2026-03-29T21:05:12Z</updated>

		<summary type="html">&lt;p&gt;Criou página com &amp;#039;&amp;lt;section begin=header /&amp;gt; {{#ifeq:{{#invoke:String|find|{{FULLPAGENAME}}|Testes}}|0|&amp;lt;includeonly&amp;gt;{{alto-risco|113000}}&amp;lt;/includeonly&amp;gt;}} &amp;lt;section end=header /&amp;gt; &amp;lt;!----&amp;gt; {{Lua|Módulo:Exponential search|noprotcat=yes}} Este módulo inclui várias funções para lidar com tabelas Lua. É um metamódulo, destinado a ser chamado a partir de outros módulos Lua e não deve ser chamado diretamente a partir de &amp;quot;#invoke&amp;quot;.  ==Carregando o módulo== Para usar qualquer uma das funçõe...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;section begin=header /&amp;gt;&lt;br /&gt;
{{#ifeq:{{#invoke:String|find|{{FULLPAGENAME}}|Testes}}|0|&amp;lt;includeonly&amp;gt;{{alto-risco|113000}}&amp;lt;/includeonly&amp;gt;}}&lt;br /&gt;
&amp;lt;section end=header /&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
{{Lua|Módulo:Exponential search|noprotcat=yes}}&lt;br /&gt;
Este módulo inclui várias funções para lidar com tabelas Lua. É um metamódulo, destinado a ser chamado a partir de outros módulos Lua e não deve ser chamado diretamente a partir de &amp;quot;#invoke&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Carregando o módulo==&lt;br /&gt;
Para usar qualquer uma das funções, primeiro é necessário carregar o módulo.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local TableTools = require(&amp;#039;Módulo:TableTools&amp;#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==isPositiveInteger==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.isPositiveInteger(value)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Esta função retorna &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; se &amp;lt;code&amp;gt;&amp;#039;&amp;#039;value&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; for um número inteiro positivo e &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; se não for. Embora não opere em tabelas, está incluída aqui porque é útil para determinar se uma determinada chave de tabela está na parte arranjo ou na parte &amp;#039;&amp;#039;hash&amp;#039;&amp;#039; de uma tabela.&lt;br /&gt;
&lt;br /&gt;
==isNan==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.isNan(value)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Esta função retorna &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; se &amp;lt;code&amp;gt;&amp;#039;&amp;#039;value&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; for um valor &amp;#039;&amp;#039;[[NaN]]&amp;#039;&amp;#039; e &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; se não for. Embora não opere em tabelas, está incluída aqui porque é útil para determinar se um valor pode ser uma chave de tabela válida. (Lua gerará um erro se um valor &amp;#039;&amp;#039;NaN&amp;#039;&amp;#039; for usado como uma chave de tabela.)&lt;br /&gt;
&lt;br /&gt;
==shallowClone==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.shallowClone(t)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Esta função retorna um clone de uma tabela. O valor retornado é uma nova tabela, mas todas as subtabelas e funções são compartilhadas. Os metamétodos são respeitados, mas a tabela retornada não terá metatabela própria. Se você quiser criar uma nova tabela sem subtabelas compartilhadas e com metatabelas transferidas, você pode usar &amp;lt;code&amp;gt;[[mw:Extension:Scribunto/Lua reference manual/pt-br#mw.clone|mw.clone]]&amp;lt;/code&amp;gt;. Se você deseja criar uma nova tabela sem subtabelas compartilhadas e sem metatabelas transferidas, use &amp;lt;code&amp;gt;[[#deepCopy|deepCopy]]&amp;lt;/code&amp;gt; com a opção &amp;lt;code&amp;gt;noMetatable&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==removeDuplicates==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.removeDuplicates(t)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Esta função remove valores duplicados de um arranjo. Esta função foi projetada para funcionar apenas com arranjos padrões: as chaves que não são números inteiros positivos são ignoradas, assim como todos os valores após o primeiro valor &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt;. (Para arranjos contendo valores &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt;, você pode usar &amp;lt;code&amp;gt;[[#compressSparseArray|compressSparseArray]]&amp;lt;/code&amp;gt; primeiro.) A função tenta preservar a ordem do arranjo: o primeiro valor que não for exclusivo (único) é mantido e todos os valores duplicados subsequentes são removidos. Por exemplo, para a tabela {{Código|code={5, 4, 4, 3, 4, 2, 2, 1}|lang=lua}} &amp;lt;code&amp;gt;removeDuplicates&amp;lt;/code&amp;gt; retornará {{Código|code ={5, 4, 3, 2, 1}|lang=lua}}.&lt;br /&gt;
&lt;br /&gt;
==numKeys==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.numKeys(t)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Esta função pega uma tabela &amp;lt;code&amp;gt;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; e retorna um arranjo contendo os números de quaisquer chaves inteiras positivas que tenham valores que não são nulos, classificados em ordem numérica. Por exemplo, para a tabela {{Código|code={&amp;#039;foo&amp;#039;, nil, &amp;#039;bar&amp;#039;, &amp;#039;baz&amp;#039;, a = &amp;#039;b&amp;#039;}|lang=lua}}, &amp;lt;code&amp;gt;numKeys&amp;lt;/code&amp;gt; retornará {{Código|code={1, 3, 4}|lang=lua}}.&lt;br /&gt;
&lt;br /&gt;
==affixNums==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.affixNums(t, prefix, suffix)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Esta função pega uma tabela &amp;lt;code&amp;gt;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; e retorna um arranjo contendo os números de chaves com o prefixo opcional &amp;lt;code&amp;gt;&amp;#039;&amp;#039;prefix&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; e o sufixo opcional &amp;lt;code&amp;gt;&amp;#039;&amp;#039;suffix&amp;#039;&amp;#039;&amp;lt;/code&amp;gt;. Por exemplo, para a tabela {{Código|code={a1 = &amp;#039;foo&amp;#039;, a3 = &amp;#039;bar&amp;#039;, a6 = &amp;#039;baz&amp;#039;}|lang=lua}} e o prefixo &amp;lt;code&amp;gt;&amp;#039;a&amp;#039;&amp;lt;/code&amp;gt; , &amp;lt;code&amp;gt;affixNums&amp;lt;/code&amp;gt; retornará {{Código|code={1, 3, 6}|lang=lua}}. Todos os caracteres em &amp;lt;code&amp;gt;&amp;#039;&amp;#039;prefix&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;&amp;#039;&amp;#039;suffix&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; são interpretados literalmente.&lt;br /&gt;
&lt;br /&gt;
==numData==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.numData(t, compress)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Dada uma tabela com chaves como &amp;lt;code&amp;gt;&amp;quot;foo1&amp;quot;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;quot;bar1&amp;quot;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;quot;foo2&amp;quot;&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;&amp;quot;baz2&amp;quot;&amp;lt;/code&amp;gt;, esta função retorna uma tabela de subtabelas no formato {{Código|code={ [1] = {foo = &amp;#039;text&amp;#039;, bar = &amp;#039;text&amp;#039;}, [2] = {foo = &amp;#039;text&amp;#039;, baz = &amp;#039;text&amp;#039; } }|lang=lua}}. As chaves que não terminam com um número inteiro são armazenadas em uma subtabela chamada &amp;lt;code&amp;gt;&amp;quot;other&amp;quot;&amp;lt;/code&amp;gt;. A opção &amp;quot;compress&amp;quot; comprime a tabela para que possa ser iterada com &amp;lt;code&amp;gt;ipairs&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==compressSparseArray==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.compressSparseArray(t)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Esta função pega um arranjo &amp;lt;code&amp;gt;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; com um ou mais valores nulos, e remove os valores nulos enquanto preserva a ordem, para que o arranjo possa ser percorrido com segurança com &amp;lt;code&amp;gt;ipairs&amp;lt;/code&amp;gt;. Quaisquer chaves que não sejam números inteiros positivos são removidas. Por exemplo, para a tabela {{Código|code={1, nil, foo = &amp;#039;bar&amp;#039;, 3, 2}|lang=lua}}, &amp;lt;code&amp;gt;compressSparseArray&amp;lt;/code&amp;gt; retornará {{Código|code={1, 3, 2}|lang=lua}}.&lt;br /&gt;
&lt;br /&gt;
==sparseIpairs==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.sparseIpairs(t)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Esta é uma função iteradora para percorrer um arranjo esparso &amp;lt;code&amp;gt;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;lt;/code&amp;gt;. É semelhante a &amp;lt;code&amp;gt;[[mw:Extension:Scribunto/Lua reference manual/pt-br#ipairs|ipairs]]&amp;lt;/code&amp;gt;, mas continuará a iterar até a chave numérica mais alta, enquanto &amp;lt;code&amp;gt;ipairs&amp;lt;/code&amp;gt; pode parar após o primeiro valor &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt;. Quaisquer chaves que não sejam números inteiros positivos são ignoradas.&lt;br /&gt;
&lt;br /&gt;
Normalmente, &amp;lt;code&amp;gt;sparseIpairs&amp;lt;/code&amp;gt; é usada em um &amp;#039;&amp;#039;loop&amp;#039;&amp;#039; &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; genérico.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
for i, v in TableTools.sparseIpairs(t) do&lt;br /&gt;
   -- bloco de código&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Observe que &amp;lt;code&amp;gt;sparseIpairs&amp;lt;/code&amp;gt; usa a função &amp;lt;code&amp;gt;[[mw:Extension:Scribunto/Lua reference manual/pt-br#pairs|pairs]]&amp;lt;/code&amp;gt; em sua implementação. Embora algumas chaves da tabela pareçam ser ignoradas, todas as chaves da tabela são acessadas quando ela é executada.&lt;br /&gt;
&lt;br /&gt;
==size==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.size(t)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Localiza o tamanho de uma tabela de pares chave/valor ([[Vetor associativo|arranjo associativo]]). Por exemplo, para a tabela {{Código|code={foo = &amp;#039;foo&amp;#039;, bar = &amp;#039;bar&amp;#039;}|lang=lua}}, &amp;lt;code&amp;gt;size&amp;lt;/code&amp;gt; retornará &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;. A função também funcionará em arranjos, mas para arranjos é mais eficiente usar o operador &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;. Observe que para encontrar o tamanho, esta função usa a função &amp;lt;code&amp;gt;[[mw:Extension:Scribunto/Lua reference manual/pt-br#pairs|pairs]]&amp;lt;/code&amp;gt; para percorrer todas as chaves.&lt;br /&gt;
&lt;br /&gt;
==keysToList==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.keysToList(t, keySort, checked)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Esta função retorna uma lista das chaves em uma tabela, classificadas usando uma função de comparação padrão ou uma função &amp;lt;code&amp;gt;&amp;#039;&amp;#039;keySort&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; personalizada, que segue as mesmas regras da função &amp;lt;code&amp;gt;comp&amp;lt;/code&amp;gt; fornecida para &amp;lt;code&amp;gt;[[mw:Extension:Scribunto/Lua reference manual/pt-br#table.sort|table.sort]]&amp;lt;/code&amp;gt;. Se &amp;lt;code&amp;gt;&amp;#039;&amp;#039;keySort&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;, nenhuma classificação será feita. É necessário definir &amp;lt;code&amp;gt;&amp;#039;&amp;#039;checked&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; como &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; para pular a verificação interna de tipo.&lt;br /&gt;
&lt;br /&gt;
==sortedPairs==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.sortedPairs(t, keySort)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Esta função itera por meio de uma tabela, com as chaves classificadas usando a função &amp;lt;code&amp;gt;keysToList&amp;lt;/code&amp;gt;. Se houver apenas chaves numéricas, &amp;lt;code&amp;gt;sparseIpairs&amp;lt;/code&amp;gt; provavelmente será mais eficiente.&lt;br /&gt;
&lt;br /&gt;
==isArray==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.isArray(value)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Esta função retorna &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; se &amp;lt;code&amp;gt;&amp;#039;&amp;#039;value&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; for uma tabela e todas as chaves forem inteiros consecutivos começando em 1.&lt;br /&gt;
&lt;br /&gt;
==isArrayLike==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.isArrayLike(value)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Esta função retorna &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; se &amp;lt;code&amp;gt;&amp;#039;&amp;#039;value&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; for iterável e todas as chaves forem inteiros consecutivos começando em 1.&lt;br /&gt;
&lt;br /&gt;
==invert==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.invert(arr)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Esta função transpõe as chaves e valores em um arranjo. Por exemplo, {{Código|invert{ &amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot; }|lua}} resulta em {{Código|code={ a=1, b=2, c=3 }|lang=lua}}.&lt;br /&gt;
&lt;br /&gt;
==listToSet==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.listToSet(arr)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Esta função cria um conjunto a partir da parte arranjo da tabela &amp;lt;code&amp;gt;&amp;#039;&amp;#039;arr&amp;#039;&amp;#039;&amp;lt;/code&amp;gt;. A indexação do conjunto por qualquer um dos valores do arranjo retorna &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;. Por exemplo, {{Código|listToSet{ &amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot; }|lua}} resulta em {{Código|code={ a=true, b=true, c=true }|lang=lua}}.&lt;br /&gt;
&lt;br /&gt;
==deepCopy==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.deepCopy(orig, noMetatable, alreadySeen)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Esta função cria uma cópia da tabela &amp;lt;code&amp;gt;&amp;#039;&amp;#039;orig&amp;#039;&amp;#039;&amp;lt;/code&amp;gt;. Como em &amp;lt;code&amp;gt;mw.clone&amp;lt;/code&amp;gt;, todos os valores que não são funções são duplicados e a identidade das tabelas é preservada. Se &amp;lt;code&amp;gt;&amp;#039;&amp;#039;noMetatable&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;, então a metatabela (se houver) não será copiada. Ela pode copiar tabelas carregadas com &amp;lt;code&amp;gt;mw.loadData&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Similar à &amp;lt;code&amp;gt;mw.clone&amp;lt;/code&amp;gt;, mas &amp;lt;code&amp;gt;mw.clone&amp;lt;/code&amp;gt; não pode copiar tabelas carregadas com &amp;lt;code&amp;gt;mw.loadData&amp;lt;/code&amp;gt; e não permite que metatabelas &amp;lt;em&amp;gt;não&amp;lt;/em&amp;gt; sejam copiadas.&lt;br /&gt;
&lt;br /&gt;
==sparseConcat==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.sparseConcat(t, sep, i, j)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Esta função concatena todos os valores na tabela que são indexados por um número inteiro positivo, em ordem. Por exemplo, {{Código|sparseConcat{ &amp;quot;a&amp;quot;, nil, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot; }|lua}} resulta em {{Código|&amp;quot;acd&amp;quot;|lua}} e {{Código|sparseConcat{ nil, &amp;quot;b &amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot; }|lua}} resulta em {{Código|&amp;quot;bcd&amp;quot;|lua}}.&lt;br /&gt;
&lt;br /&gt;
==length==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.length(t, prefix)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Esta função localiza o comprimento de um arranjo ou de um quasi-arranjo com chaves com um &amp;lt;code&amp;gt;&amp;#039;&amp;#039;prefix&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; opcional como &amp;quot;data1&amp;quot;, &amp;quot;data2&amp;quot;, etc. Ela usa um algoritmo de [[Busca exponencial|pesquisa exponencial]] para encontrar o comprimento, de modo a usar o mínimo possível de pesquisas de tabela.&lt;br /&gt;
&lt;br /&gt;
Este algoritmo é útil para arranjos que usam metatabelas (por exemplo, [[mw:Extension:Scribunto/Lua reference manual/pt-br#frame.args|frame.args]]) e para quasi-arranjos. Para arranjos normais, basta usar o [[mw:Extension:Scribunto/Lua reference manual/pt-br#Length operator|operador #]], pois ele é implementado em [[C (linguagem de programação)|C]] e será mais rápido.&lt;br /&gt;
&lt;br /&gt;
==inArray==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;TableTools.inArray(array, searchElement)&lt;br /&gt;
TableTools.inArray(array, searchElement, fromIndex)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Retorna &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; se &amp;lt;code&amp;gt;&amp;#039;&amp;#039;searchElement&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; for um membro do arranjo &amp;lt;code&amp;gt;&amp;#039;&amp;#039;array&amp;#039;&amp;#039;&amp;lt;/code&amp;gt;, e &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; caso contrário. Equivalente à função &amp;#039;&amp;#039;javascript&amp;#039;&amp;#039; [https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array/includes Array.prototype.includes()], exceto que &amp;quot;fromIndex&amp;quot; é indexado em 1 em vez de indexado em zero.&lt;br /&gt;
&lt;br /&gt;
===fromIndex===&lt;br /&gt;
&amp;lt;code&amp;gt;fromIndex&amp;lt;/code&amp;gt; é o índice opcional de base 1 no qual iniciar a pesquisa. Se &amp;lt;code&amp;gt;fromIndex&amp;lt;/code&amp;gt; não estiver presente, todos os valores no array serão pesquisados ​​e o array será tratado como uma tabela/array associativo (será iterado usando &amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; inline&amp;gt;pairs()&amp;lt;/syntaxhighlight&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Se &amp;lt;code&amp;gt;fromIndex&amp;lt;/code&amp;gt; estiver presente e for um inteiro, o arranjo é assumido como um arranjo/sequência/lista convencional (indexado com chaves inteiras consecutivas começando em &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, e interagindo usando &amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; inline&amp;gt;ipairs()&amp;lt;/syntaxhighlight&amp;gt;). Somente os valores cujo índice é &amp;lt;code&amp;gt;fromIndex&amp;lt;/code&amp;gt; ou maior serão pesquisados.&lt;br /&gt;
&lt;br /&gt;
Nos exemplos a seguir, &amp;lt;code&amp;gt;#array&amp;lt;/code&amp;gt; representa o comprimento da parte com chave inteira do arranjo.&lt;br /&gt;
*Se &amp;lt;code&amp;gt;fromIndex &amp;lt; 0&amp;lt;/code&amp;gt;, ele contará de volta do final do arranjo, por exemplo, um valor de &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; pesquisará apenas o último elemento com chave de inteiro no arranjo. Se &amp;lt;code&amp;gt;fromIndex &amp;lt;= (-1 * #array)&amp;lt;/code&amp;gt;, toda a porção com chave de inteiro do arranjo será pesquisada.&lt;br /&gt;
*Se &amp;lt;code&amp;gt;fromIndex = 0&amp;lt;/code&amp;gt;, ele será tratado como &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; e toda a porção com chave de inteiro do arranjo será pesquisada.&lt;br /&gt;
*Se &amp;lt;code&amp;gt;fromIndex &amp;gt; #array&amp;lt;/code&amp;gt;, o arranjo não será pesquisado e &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; será retornado.&lt;br /&gt;
&lt;br /&gt;
==merge==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.merge(...)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Dados os arranjos, retorna um arranjo contendo os elementos de cada arranjo de entrada em sequência.&lt;br /&gt;
&lt;br /&gt;
==extend==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.extend(arr1, arr2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Estende o primeiro arrabjo no local anexando todos os elementos do segundo arranjo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{Testes outro||&lt;br /&gt;
[[Categoria:!Metamódulos Lua|TableTools]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Itaymbere</name></author>
	</entry>
</feed>