无法读取多维数组(Table)

    Module = {}
    tempData = {Visit = false, Stats = {Name = '暂无名称', 等级 = 0, 经验值 = 0, 经验值2 = 10},
            Hats = {基本 = true, 夜影 = false},
            Robes = {基本 = true, 夜影 = false},
            Boots = {基本 = true, 夜影 = false},
            Swords = {基本 = true, 夜影 = false}
            }

        function Module:改变外观(player, category, name)
            tempData[player][category][name] = true
        end

       --[[ function Module:读取状态()
            for k, v in pairs(tempData['Stats']) do
                print(k)
                print(v)
                wait()
            end
        end
        function Module:读取帽子()
        for k, v in pairs(tempData['Hats']) do
                print(k)
                print(v)
                wait()
        end
        end

    --这两个可以工作,但是如果我需要为不同的数组(table)编写不同的函数来读取,这是不太有效的]]

   --[[ function Module:读取全部()
       for i = 1, #tempData do
           for k = 1, #tempData do
               print(tempData[i][k])
           end
       end

这个函数是我正在处理的,但是我不知道哪里出了问题? 我试图读取整个数组(table),而不是使用单独的函数读取每个元素。]]

    return Module
点赞
用户2674545
用户2674545

以下是中文翻译,保留原本的 markdown 格式:

在你的情况下,你可以这样做:

tempData = {
  Visit = false,
  Stats = {Name = 'No Name', Levels = 0, XP = 0, XP2 = 10},
  Hats = {Basic = true, NightShade = false},
  Robes = {Basic = true, NightShade = false},
  Boots = {Basic = true, NightShade = false},
  Swords = {Basic = true, NightShade = false}
}

function ReadAll()
  for k,v in pairs(tempData) do
    if type(v) == 'table' then
      for k2, v2 in pairs(v) do
        print(k..":",k2,v2)
      end
    else
      print(k..":",v)
    end
  end
end

ReadAll()

检查是否是一个表,如果是,则使用键-值对而不是索引-值对进行打印。

2016-04-16 17:32:34