Thread Tools Display Modes
06-30-18, 08:39 AM   #1
alikim
A Fallenroot Satyr
Join Date: Jul 2015
Posts: 27
How to get element count for this table?

Code:
PRF = {
	["Profile_1"] = {
		["pve"] = {
			{
				"Blood Frenzy", -- [1]
				22420, -- [2]
			}, -- [1]
			{
				"Guttural Roars", -- [1]
				22424, -- [2]
			}, -- [2]
			{
				"Balance Affinity", -- [1]
				22163, -- [2]
			}, -- [3]
			{
				"Mass Entanglement", -- [1]
				18576, -- [2]
			}, -- [4]
			{
				"Incarnation: Guardian of Ursoc", -- [1]
				21706, -- [2]
			}, -- [5]
			{
				"Survival of the Fittest", -- [1]
				22422, -- [2]
			}, -- [6]
			{
				"Pulverize", -- [1]
				22425, -- [2]
			}, -- [7]
		},
		["pvp"] = {
		},
		["bar"] = {
		},
	},
}
How do I get number of profile records in this table?

The function below gives me "count 0 0", I expect 1 for "Profile_1"

Code:
print("count " .. table.getn(PRF) .. " " .. #PRF)
Thank you!
  Reply With Quote
06-30-18, 09:17 AM   #2
LanceDH
A Cyclonian
 
LanceDH's Avatar
AddOn Author - Click to view addons
Join Date: Aug 2012
Posts: 41
getn only works with positive integer keys, from 1 until the sequence breaks.
If the key is another type, such as a table or string in this case, it won't count it.
Lua Code:
  1. local t = {"a", "b", "c"}
  2. print(#t); -- prints 3
  3. t[5] = "e";
  4. print(#t); -- still prints 3, because there is no key 4
  5. t["4"] = "d";
  6. print(#t); -- still prints 3, because key "4" is a string, not an integer

To get the number of all keys in a table, you have to create a for loop:
Lua Code:
  1. local count = 0;
  2. for key, value in pairs(PRF) do
  3.    count = count + 1;
  4. end
  5. print(count); -- will print 1
Note that I used pairs for this for loop instead of ipairs. It's the same thing where ipairs will only loop the sequencing integer keys (1-3 in table t from the first example)

Last edited by LanceDH : 06-30-18 at 09:32 AM.
  Reply With Quote
06-30-18, 10:04 AM   #3
alikim
A Fallenroot Satyr
Join Date: Jul 2015
Posts: 27
T h a n k s !
  Reply With Quote

WoWInterface » Developer Discussions » Lua/XML Help » How to get element count for this table?

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off