Sorting 如果值本身是表,如何对表进行排序
如何根据序列值对该表进行排序Sorting 如果值本身是表,如何对表进行排序,sorting,lua,Sorting,Lua,如何根据序列值对该表进行排序 Record['Personnel Number']={['sequence']=1, ['mapping']='data',['value']='employeeCode', ['decode']='', ['expression']=''} Record['Effective Date']={['sequence']=3, ['mapping']='data', ['value']='payDate', ['decode']='', ['expression'
Record['Personnel Number']={['sequence']=1, ['mapping']='data',['value']='employeeCode', ['decode']='', ['expression']=''}
Record['Effective Date']={['sequence']=3, ['mapping']='data', ['value']='payDate', ['decode']='', ['expression']=''}
Record['Unit']={['sequence']=4, ['mapping']='data', ['value']='payUnit', ['decode']='', ['expression']=''}
Record['Wage Type']={['sequence']=2, ['mapping']='data', ['value']='payCode', ['decode']='', ['expression']=''}
print(Record[4].key, Record[4].value)
您可以使用table.sort对列表进行排序
table.sort(列表[,comp])
按给定顺序对列表元素进行排序,从列表[1]到列表[#list]。
如果给定了comp
,则它必须是一个接收两个列表的函数
元素,并在第一个元素必须位于
排名第二
local comp=函数(a,b)返回a.序列
将根据列表元素表的序列值对列表进行排序
您没有列表。Lua表键值对没有顺序。因此,您无法排序
排序列表是通过在数字键之间交换值来完成的。如果序列值是唯一的且不会与现有键冲突,则可以创建一个备用索引:
for k,v in pairs(Record) do
if type(v) == "table" then
Record[v.sequence] = v
v.key = k -- optional
end
end
那么
1) 您可以按序列值进行索引
Record['Personnel Number']={['sequence']=1, ['mapping']='data',['value']='employeeCode', ['decode']='', ['expression']=''}
Record['Effective Date']={['sequence']=3, ['mapping']='data', ['value']='payDate', ['decode']='', ['expression']=''}
Record['Unit']={['sequence']=4, ['mapping']='data', ['value']='payUnit', ['decode']='', ['expression']=''}
Record['Wage Type']={['sequence']=2, ['mapping']='data', ['value']='payCode', ['decode']='', ['expression']=''}
print(Record[4].key, Record[4].value)
< P> 2)如果序列值也是所有整数,从1开始,不要跳过中间,可以使用<代码> iBoos<代码>迭代< /P>
for i,v in ipairs(Record) do
print(i, v.key, v.value)
end
记录
不是列表,因此无法排序。你能想象出什么样的输出?