lua表错误循环顺序

问题描述 投票:0回答:1

我正在尝试在lua中循环表,但是表循环顺序是错误的。下面的代码打印:

  • 键:三个数字:3
  • 键:一个数字:1
  • 键:两个数字:2

代码是:

  testNumbers =
  {
    one = 1,
    two = 2,
    three = 3
  }

for key,num in pairs(testNumbers) do 

print("key : " .. key .. " num: " .. num)

end

如何使它以正确的顺序循环?我现在不能更改太多代码,因为现在需要key变量

loops lua
1个回答
0
投票

为了提高效率,Lua表不跟踪其键的顺序。如果您不能更改表的格式,则仍然可以通过保留键数组并对其进行迭代来强制执行迭代顺序。

testNumbers =
  {
    one = 1,
    two = 2,
    three = 3
  }

local order = {'one', 'two', 'three'}

for _, key in ipairs(order) do
  print("key : " .. key .. " num: " .. testNumbers[key])
end
© www.soinside.com 2019 - 2024. All rights reserved.