World of Warcraft Lua - 排序表格

我正在尝试为一个插件/弱化界面排序一个表格,但我不知道如何做到这一点(按属性值排序)。

例如:

        player = {
            value = 34
            class = Warrior,
            id    = 1
        },
        {
            value = 1,
            class = mage,
            id    = 2
        },
        {
            value = 3443,
            class = Paladin,,
            class = 3
        }

我想要的结果是:

          player = {
            value = 1,
            class = mage,
            id    = 2
        },
        {
            value = 34
            class = Warrior,
            id    = 1
        },
        {
            value = 3443,
            class = Paladin,
            class = 3
        }

有人有想法如何做到这一点吗?

点赞
用户1442917
用户1442917

假设你修复了你的表声明,你可以使用自定义函数对表进行排序:

local player = {
  { value = 34, class = "Warrior", id = 1 },
  { value = 1, class = "mage",  id = 2 },
  { value = 3443, class = "Paladin", id = 3 },
}

table.sort(player, function(a,b) return a.value < b.value end)

这将按照 value 字段的值对 player 表的元素进行排序。如果需要的话,你可以提出更复杂的排序条件。

更多关于 table.sort 的信息,请参考 http://www.lua.org/manual/5.3/manual.html#pdf-table.sort

2016-06-24 06:24:08