algorithm - 根据Lua中的键对数组值进行分组?
问题描述
我有一个数组:
messages = {
{
id = 1,
sender = 987654321,
content = 'test message'
},
{
id = 2,
sender = 123456789,
content = 'testowa wiadomość'
},
{
id = 3,
sender = 123456789,
content = 'txd'
}
}
我想根据“发件人”作为主键对数组中的元素进行分组。最终结果应如下所示:
messages = {
{
sender = 987654321,
messages = {
'test message'
}
},
{
sender = 123456789,
messages = {
'testowa wiadomość',
'txd'
}
}
}
有人可以帮我解决这个问题吗?
解决方案
好的,我解决了这个问题:
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
推荐阅读
- regex - Flutter dart 使用正则表达式将字符串拆分为较小的组
- c# - API 中的哪里是 ApiName 的值,用于分配 IdentiyServer4 的授权?
- node.js - React API 调用状态永远挂起
- sorting - QGIS如何永久更改记录顺序?(对记录/特征进行永久排序并输出一个新的 shapefile)
- apache-spark - Spark 表和 Ranger Row 过滤
- javascript - 进行排序并加载更多系统(NodeJS 路由 + MySQL)
- c++ - 指向方法问题的指针
- javascript - react-datepicker 没有正确显示日期
- c# - Unity C#-rigidbody.moveposition 的 Lerp 问题
- reactjs - Firebase:在“firebase/app”中找不到“firebase”