【问题标题】:how to make lua table key in order如何按顺序制作lua表键
【发布时间】:2019-10-29 12:56:23
【问题描述】:

我的测试代码:

local jsonc = require "jsonc"

local x = {
    a = 1,
    b = 2,
    c = 3,
    d = 4,
    e = 5,
}

for k, v in pairs(x) do
    print(k,v)
end

print(jsonc.stringify(x))

输出:

a   1
c   3
b   2
e   5
d   4
{"a":1,"c":3,"b":2,"e":5,"d":4}

有人帮忙:

  1. from for pairs output, lua store table by key hash order, 我该如何改变它?
  2. 我需要输出:{"a":1,"b":2,"c":3,"d":4,"e":5}
  3. 谢谢

【问题讨论】:

标签: json lua


【解决方案1】:

Lua 表无法保留其键的顺序。有两种可能的解决方案。

您可以将键存储在单独的数组中,并在需要遍历表时对其进行遍历:

local keys = {'a', 'b', 'c', 'd', 'e'}

或者,您可以使用一对数组来代替哈希表:

local x = {
    {'a', 1},
    {'b', 2},
    {'c', 3},
    {'d', 4},
    {'e', 5},
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-05
    • 2014-11-27
    • 2019-09-03
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    相关资源
    最近更新 更多