Maps can be modified after they are created. Starting from the following map:
local x = {
a = 1,
b = 2,
c = 3,
d = 4,
}
let's look at modifying existing values in the map. As a saw in the previous section we can access elements in the map by retrieving the key from the map, and also by accessing each key as a property of the map. We can also use either method to assign values to the map:
-- update a value in the table by key
x["b"] = 9
-- update value by property
x.c = 11
print(x["a"]) -- 1
print(x["b"]) -- 9
print(x["c"]) -- 11
print(x["d"]) -- 4
Inserting a value is works the same way: we simply create a new key by assigning a value to it:
-- insert a value in the table
x["e"] = 5
x.f = 6
print(x["a"]) -- 1
print(x["b"]) -- 9
print(x["c"]) -- 11
print(x["d"]) -- 4
print(x["e"]) -- 5
print(x["f"]) -- 6
Removing a value from the map is done by assigning nil to it:
-- remove an item from the map
x.e = nil
print(x["a"]) -- 1
print(x["b"]) -- 9
print(x["c"]) -- 11
print(x["d"]) -- 4
print(x["e"]) -- nil
print(x["f"]) -- 6