Lua中如何基于键值对对数组的值进行分组?

我有一个数组:

messages = {
    {
        id = 1,
        sender = 987654321,
        content = 'test message'
    },
    {
        id = 2,
        sender = 123456789,
        content = '测试消息'
    },
    {
        id = 3,
        sender = 123456789,
        content = 'txd'
    }
}

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

messages = {
    {
        sender = 987654321,
        messages = {
            'test message'
        }
    },
    {
        sender = 123456789,
        messages = {
            '测试消息''txd'
        }
    }
}

有人能帮助我吗?

点赞
用户11632344
用户11632344

我解决了这个问题:

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
2019-10-04 22:51:41