【问题标题】:Lua table sort with string key [duplicate]Lua表排序与字符串键[重复]
【发布时间】:2013-08-21 05:38:38
【问题描述】:

我在这张桌子上需要帮助

tbl = {
    Noa={10,0,3},
    melvin={5,3,1},
    jeex={500,0,2},
    kiim={100,2,3}
}

我需要这张表上的所有值,按表上的第一个值排序 例子。

输出>

jeex   500 ,0,2
kiim   100 ,2,3
Noa    10,0,3
melvin 5,3,1

【问题讨论】:

  • 表格无法排序。不过,您可以对键进行排序。

标签: sorting lua lua-table


【解决方案1】:

只有带有数字索引的表格元素才有顺序。您无法对键为字符串的表进行排序。所以你的第一步是创建一个实际有订单的表。为此,您可以遍历当前表的元素,并在基于当前表的新表中插入一个值,该表同时包含键和值。

local array = {}
for key, value in pairs(tbl) do
  array[#array + 1] = {key = key, value = value}
end

一旦你有了一个实际的数组,那么你可以用table.sort对其进行排序。

【讨论】:

  • 我有一个简单的解决方案|| function TableSortByValue(tbl) -- 按表数组的第一个值排序={} for ,i in pairs(tbl) do table.insert(i,) --tbl={[1... ]={1,1,1,name}} array[table.getn(array)+1]=i end table.sort(array, function(a,b) return a[1] > b[1] end)返回数组结束
猜你喜欢
  • 2020-10-17
  • 1970-01-01
  • 1970-01-01
  • 2014-11-27
  • 2012-04-16
  • 1970-01-01
  • 1970-01-01
  • 2017-02-18
相关资源
最近更新 更多