基于Lua键的分组数组值?

问题描述 投票:1回答:1

我有一个数组:

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

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

messages = {
    {
        sender = 987654321,
        messages = {
            'test message'
        }
    },
    {
        sender = 123456789,
        messages = {
            'testowa wiadomość',
            'txd'
        }
    }
}

有人可以帮我这个忙吗?

algorithm lua
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.