WoW:API foreachi: Difference between revisions

m
Move page script moved page API foreachi to WoW:API foreachi without leaving a redirect
(Use Lua/Libshortcut template. Change category from "LUA Functions" to "Lua functions".)
m (Move page script moved page API foreachi to WoW:API foreachi without leaving a redirect)
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{:Lua/Libshortcut|foreachi|table.foreachi}}
{{luaapi}}
From [http://lua-users.org/wiki/TableLibraryTutorial TableLibraryTutorial] of lua-users.org.
From [http://lua-users.org/wiki/TableLibraryTutorial TableLibraryTutorial] of lua-users.org.


  table.foreachi(table, f)
  table.foreachi(table, f)
foreaci(table, f)


Apply the function f to the elements of the table passed. On each iteration the function f is passed the index-value pair of that element in the table. This is similar to table.foreach() except that index-value pairs are passed, not key-value pairs. If the function f returns a non-nil value the iteration loop terminates.
Apply the function f to the elements of the table passed. On each iteration the function f is passed the index-value pair of that element in the table. This is similar to table.foreach() except that index-value pairs are passed, not key-value pairs. If the function f returns a non-nil value the iteration loop terminates.
Line 14: Line 15:
Note in the example only the indexed elements of the table are displayed. See the TablesTutorial for more information on key-value and index-value pairs.
Note in the example only the indexed elements of the table are displayed. See the TablesTutorial for more information on key-value and index-value pairs.


{{LUA}}
Also note that foreachi starts at index [1], increments the index by one repeatedly, and stops running as soon as it reaches a nil value. This is an example:
 
> t = { [0]      = "zero",  --will not be counted
        [1]      = "one",    --will be counted; 1
        [2]      = "two",    --will be counted; 2
        [3]      = "three",  --will be counted; 3
        ["four"] = "four",  --will not be counted; returns 3
        [5]      = "five" } --will never be reached
> foreachi(t, print)
1      one
2      two
3      three
 
In the above, it starts at t[1] (''not'' t[0]) and counts to t[3], printing the corresponding values along the way. It then checks t[4], sees it is nil, and stops running. t[5] is never checked - this ''will not hit every array index in a table, only the consecutive ones from one up until it hits its first blank index.''
Anonymous user