Revision Difference
table.ClearKeys#511883
<function name="ClearKeys" parent="table" type="libraryfunc">⤶
<description>Changes all keys to sequential integers. This creates a new table object and does not affect the original.</description>⤶
<realm>Shared and Menu</realm>⤶
<file line="454">lua/includes/extensions/table.lua</file>⤶
<args>⤶
<arg name="table" type="table">The original table to modify.</arg>⤶
<arg name="saveKeys" type="boolean" default="false">Save the keys within each member table. This will insert a new field `__key` into each value, and should not be used if the table contains non-table values.</arg>⤶
</args>⤶
<rets>⤶
<ret name="" type="table">Table with integer keys.</ret>⤶
</rets>⤶
</function>⤶
⤶
<example>⤶
<description>Changes all the table's keys to integer values</description>⤶
<code>⤶
local Table = {One = "A", Two = "B", Three = "C"}⤶
local Table2 = table.ClearKeys(Table)⤶
PrintTable(Table2)⤶
</code>⤶
<output>⤶
1 = A⤶
⤶
⤶
2 = C⤶
⤶
⤶
3 = B⤶
</output>⤶
⤶
</example>⤶
⤶
⤶
<example>⤶
<description>Clears a table of its keys, and preserves the old key names within each member.</description>⤶
<code>⤶
local tbl = {⤶
FirstMember = { Name = "John Smith", Age = 25 },⤶
SecondMember = { Name = "Jane Doe", Age = 42 },⤶
ThirdMember = { Name = "Joe Bloggs", Age = 39 }⤶
}⤶
print( "&lt;nowiki&gt;===== Before =====&lt;/nowiki&gt;" )⤶
PrintTable( tbl )⤶
local tbl2 = table.ClearKeys( tbl, true )⤶
print( "&lt;nowiki&gt;===== After =====&lt;/nowiki&gt;" )⤶
PrintTable( tbl2 )⤶
</code>⤶
<output>⤶
⤶
```⤶
&lt;nowiki&gt;===== Before =====&lt;/nowiki&gt;⤶
FirstMember:⤶
Name = John Smith⤶
Age = 25⤶
SecondMember:⤶
Name = Jane Doe⤶
Age = 42⤶
ThirdMember:⤶
Name = Joe Bloggs⤶
Age = 39⤶
&lt;nowiki&gt;===== After =====&lt;/nowiki&gt;⤶
1:⤶
Age = 25⤶
Name = John Smith⤶
__key = FirstMember⤶
2:⤶
Age = 39⤶
Name = Joe Bloggs⤶
__key = ThirdMember⤶
3:⤶
Age = 42⤶
Name = Jane Doe⤶
__key = SecondMember⤶
```⤶
⤶
</output>⤶
⤶
</example>