NaaLaa
Tables - Printable Version

+- NaaLaa (https://www.naalaa.com/forum)
+-- Forum: NaaLaa (https://www.naalaa.com/forum/forum-1.html)
+--- Forum: NaaLaa 7 Questions (https://www.naalaa.com/forum/forum-3.html)
+--- Thread: Tables (/thread-401.html)



Tables - johnno56 - 06-12-2026

Quick question about tables...

I know that the "insert" command can be used to add stuff to the table (insert tbl, index, value), but I cannot find a command to "remove" stuff from a table. I figured that the "insert" help (F1) would possibly provide either reference or a link to removing... I figured wrong... *sigh*

Can anyone provide a method of removal?

J


RE: Tables - 1micha.elok - 06-12-2026

Code:
free_key.n7
free key tbl, key

' free key
' --------

' Create an array, print its size and elements.
a = [13, 14, 15, 16, 17]
pln "Size of a = " + sizeof(a)
for i = 0 to sizeof(a) - 1 pln " a[" + i + "] = " + a[i]

' 'free key t, k' removes the entry with key k from table t if it exists. If the key is numeric, any
' sequent numeric keys will be decreased.
free key a, 2
' Print again.
pln "Size of a after removing index 2 = " + sizeof(a)
for i = 0 to sizeof(a) - 1 pln " a[" + i + "] = " + a[i]

' Do the same thing but with string keys.
a = [foo: 10, bar: 20, baz: 30]
pln "Size of a = " + sizeof(a)
foreach k, v in a pln " a." + k + " = " + v

free key a, "baz"
pln "Size of a after removing key baz = " + sizeof(a)
foreach k, v in a pln " a." + k + " = " + v

system "pause"

Code:
free_val.n7
free val tbl, value

' free val
' --------

' Put some numbers and strings in an array and print its size and elements.
a = [13, "hello", 2, "boop", "hello", 13, 4]
pln "Size of a = " + sizeof(a)
for i = 0 to sizeof(a) - 1 pln " a[" + i + "] = " + a[i]

' 'free val t, v' removes every entry with v as value from table t. If entries with numeric keys are
' removed from a sequence, any sequent keys will be re-indexed.
free val a, "hello"
free val a, 2
' Print again.
pln "Size of a after removing value hello and 2 = " + sizeof(a)
for i = 0 to sizeof(a) - 1 pln " a[" + i + "] = " + a[i]

' Do the same thing but with string keys.
a = [foo: "hello", bar: 2, baz: "hello", qux: 25]
pln "Size of a = " + sizeof(a)
foreach k, v in a pln " a." + k + " = " + v

free val a, "hello"
free val a, 2
pln "Size of a after removing value hello and 2 = " + sizeof(a)
foreach k, v in a pln " a." + k + " = " + v

system "pause"



RE: Tables - Marcus - 06-12-2026

Yep!

free key my_array, 3

, removes index 3 from my_array and re-indexes (index 4 becomes 3, and so on).

free val my_array, 3

, removes all occurrences of value 3 from my_array and re-indexes.


RE: Tables - johnno56 - 06-13-2026

Thanks, guys! Much appreciated!