Lua:在两个特定列上迭代表(带有字母数字值)

罗杰

我有这段代码可以迭代Lua表“ childrenTable”以检索其值,但是我希望它们“ symbolicname” 然后“ name”排序

  • 本示例中的表内容已插入,但是在我的实际情况下,它们会自动填充,因此我无法控制它们在表中的获取方式。我将在这里插入内容只是为了填充表格:

    local JSON = require 'dkjson'

    local childrenTable = {}
    
    childrenTable[1] = {symbolicname = "02 CONNECTOR", path = "system/core/b connector", name = "b connector"}
    childrenTable[2] = {symbolicname = "02 CONNECTOR", path = "system/core/a connector", name = "a connector"}
    childrenTable[3] = {symbolicname = "01 CORE", path = "/system/core/b", name = "b"}

    childrenTable[4] = {symbolicname = "01 CORE", path = "/system/core/a", name = "a"}    
        
    for index,value in ipairs(childrenTable) do print(JSON.encode(value)) end

现在返回此结果:

{"name":"b connector","symbolicname":"02
CONNECTOR","path":"system/core/b connector"}

{"name":"a connector","symbolicname":"02
CONNECTOR","path":"system/core/a connector"}

{"name":"b","symbolicname":"01 CORE","path":"/system/core/b"}

{"name":"a","symbolicname":"01 CORE","path":"/system/core/a"}

但我希望它按顺序返回列表:

{"name":"a","symbolicname":"01 CORE","path":"/system/core/a"}

{"name":"b","symbolicname":"01 CORE","path":"/system/core/b"}

{"name":"a connector","symbolicname":"02
CONNECTOR","path":"system/core/a connector"}

{"name":"b connector","symbolicname":"02
CONNECTOR","path":"system/core/b connector"}

提前致谢,

罗杰

煤炭

使用table.sort函数,它将遍历表并在当前索引的左侧和右侧向您传递一个项目。table.sort基于quicksort算法)

这将为您工作:

local childrenTable = {}
childrenTable[1] = {symbolicname = "02 CONNECTOR", path = "system/core/b connector", name = "b connector"}
childrenTable[2] = {symbolicname = "02 CONNECTOR", path = "system/core/a connector", name = "a connector"}
childrenTable[3] = {symbolicname = "01 CORE", path = "/system/core/b", name = "b"}
childrenTable[4] = {symbolicname = "01 CORE", path = "/system/core/a", name = "a"} 

table.sort(childrenTable, function(a, b)
    if a.symbolicname < b.symbolicname then
        return true
    else
        if a.name < b.name then
            return true
        else return false end
    end
    return false
end)

for k,v in pairs(childrenTable) do print(k, v.name, v.symbolicname) end

另外,对于大量数据,请考虑使用数据框。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python:比较两个迭代表

来自分类Dev

Python:比较两个迭代表

来自分类Dev

在具有匹配值的特定列上连接两个Pandas DataFrame

来自分类Dev

带有两个密钥的数字签名算法

来自分类Dev

在字段4和5中添加两个带有字母的字段,这些字母被编码为用冒号分隔的数字

来自分类Dev

SQL:获取带有两个特定事件的日期

来自分类Dev

SQL:获取带有两个特定事件的日期

来自分类Dev

在函数中返回带有参数的两个值

来自分类Dev

带有两个值的Bash循环

来自分类Dev

在具有不同实例数的特定列上合并两个不同长度的数据帧

来自分类Dev

Java 命名约定是否允许带有两个首字母大写的“AClassName”?

来自分类Dev

仅逐行比较特定列上的两个文件

来自分类Dev

Redis SortedSet:当两个值具有相同分数时,如何以数字顺序而不是字母顺序获取值?

来自分类Dev

Redis SortedSet:当两个值具有相同分数时,如何以数字顺序而不是字母顺序获取值?

来自分类Dev

带有两个可迭代参数的 python min 函数

来自分类Dev

如何在Lua中联接两个表(带有子表)

来自分类Dev

生成两个字母数字值之间的范围

来自分类Dev

删除R中两个特定字母之前的所有前导字符串

来自分类Dev

删除R中两个特定字母之前的所有前导字符串

来自分类Dev

是否有一个函数可以获取熊猫数据帧时间序列上两个值之间的差异?

来自分类Dev

搜索包含两个或两个以上带有新行的文本之间的特定单词的文件

来自分类Dev

查找两个可迭代对象共享的匹配值数量的更有效方法?

来自分类Dev

用于迭代两个值之间的所有组合的 while 循环

来自分类Dev

如何对两个带有4位数字(年份)的字符串进行排序?

来自分类Dev

正则表达式:排除带有两个点的数字

来自分类Dev

在两个不同列上具有两个条件的数据框

来自分类Dev

如何在Lua中检查两个表(对象)是否具有相同的值

来自分类Dev

带有两个参数的AutoFillHints

来自分类Dev

带有导航的两个滑块

Related 相关文章

  1. 1

    Python:比较两个迭代表

  2. 2

    Python:比较两个迭代表

  3. 3

    在具有匹配值的特定列上连接两个Pandas DataFrame

  4. 4

    带有两个密钥的数字签名算法

  5. 5

    在字段4和5中添加两个带有字母的字段,这些字母被编码为用冒号分隔的数字

  6. 6

    SQL:获取带有两个特定事件的日期

  7. 7

    SQL:获取带有两个特定事件的日期

  8. 8

    在函数中返回带有参数的两个值

  9. 9

    带有两个值的Bash循环

  10. 10

    在具有不同实例数的特定列上合并两个不同长度的数据帧

  11. 11

    Java 命名约定是否允许带有两个首字母大写的“AClassName”?

  12. 12

    仅逐行比较特定列上的两个文件

  13. 13

    Redis SortedSet:当两个值具有相同分数时,如何以数字顺序而不是字母顺序获取值?

  14. 14

    Redis SortedSet:当两个值具有相同分数时,如何以数字顺序而不是字母顺序获取值?

  15. 15

    带有两个可迭代参数的 python min 函数

  16. 16

    如何在Lua中联接两个表(带有子表)

  17. 17

    生成两个字母数字值之间的范围

  18. 18

    删除R中两个特定字母之前的所有前导字符串

  19. 19

    删除R中两个特定字母之前的所有前导字符串

  20. 20

    是否有一个函数可以获取熊猫数据帧时间序列上两个值之间的差异?

  21. 21

    搜索包含两个或两个以上带有新行的文本之间的特定单词的文件

  22. 22

    查找两个可迭代对象共享的匹配值数量的更有效方法?

  23. 23

    用于迭代两个值之间的所有组合的 while 循环

  24. 24

    如何对两个带有4位数字(年份)的字符串进行排序?

  25. 25

    正则表达式:排除带有两个点的数字

  26. 26

    在两个不同列上具有两个条件的数据框

  27. 27

    如何在Lua中检查两个表(对象)是否具有相同的值

  28. 28

    带有两个参数的AutoFillHints

  29. 29

    带有导航的两个滑块

热门标签

归档