根据Lua中的键对数组值进行分组?

时间:2019-10-04 16:33:08

标签: algorithm lua

我有一个数组:

grayscale

我想基于'sender'作为主键对数组中的元素进行分组。最终结果应如下所示:

messages = {
    {
        id = 1,
        sender = 987654321,
        content = 'test message'
    },
    {
        id = 2,
        sender = 123456789,
        content = 'testowa wiadomość'
    },
    {
        id = 3,
        sender = 123456789,
        content = 'txd'
    }
}

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

好的,我解决了这个问题:

function groupMessages(array)
    local result = {};
    for k, v in ipairs(array) do
        if not result[v.sender] then
            result[v.sender] = {};
        end

        table.insert(result[v.sender], v);
    end

   return result;
end