Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting Lua排序表值递增_Sorting_Lua_Midi - Fatal编程技术网

Sorting Lua排序表值递增

Sorting Lua排序表值递增,sorting,lua,midi,Sorting,Lua,Midi,我有一张表格需要对sel_音符[I]进行排序。按升序排列。 这些是midi编辑器中选定的midi音符 sel注释表: sel_notes={} sel_notes[pitch]={pitch=pitch,Idx=i} sel_notes[i]={Pitch=Pitch,Idx=i} sel_notes表格给出了以下信息: 返回{ --表:{1} { [64]={2}, [65]={3}, [66]={4}, [67]={5}, [52]={6}, [69]={7}, [68]={8}, [55

我有一张表格需要对sel_音符[I]进行排序。按升序排列。
这些是midi编辑器中选定的midi音符

sel注释表:

sel_notes={}
sel_notes[pitch]={pitch=pitch,Idx=i}
sel_notes[i]={Pitch=Pitch,Idx=i}
sel_notes表格给出了以下信息:

返回{
--表:{1}
{
[64]={2},
[65]={3},
[66]={4},
[67]={5},
[52]={6},
[69]={7},
[68]={8},
[55]={9},
[56]={10},
[57]={11},
[58]={12},
[59]={13},
[60]={14},
[61]={15},
[62]={16},
[63]={17},
},
--表:{2}
{
[“音高”]=63,
[“Idx”]=64,
},
--表:{3}
{
[“音高”]=52,
[“Idx”]=65,
},
--表:{4}
{
[“音高”]=58,
[“Idx”]=66,
},
--表:{5}
{
[“音高”]=52,
[“Idx”]=67,
},
--表:{6}
{
[“音高”]=52,
[“Idx”]=67,
},
--表:{7}
{
[“音高”]=58,
[“Idx”]=69,
},
--表:{8}
{
[“音高”]=63,
[“Idx”]=68,
},
--表:{9}
{
[“音高”]=52,
[“Idx”]=55,
},
--表:{10}
{
[“音高”]=58,
[“Idx”]=56,
},
--表:{11}
{
[“音高”]=63,
[“Idx”]=57,
},
--表:{12}
{
[“音高”]=58,
[“Idx”]=69,
},
--表:{13}
{
[“音高”]=63,
[“Idx”]=59,
},
--表:{14}
{
[“音高”]=52,
[“Idx”]=60,
},
--表:{15}
{
[“音高”]=52,
[“Idx”]=61,
},
--表:{16}
{
[“音高”]=63,
[“Idx”]=62,
},
--表:{17}
{
[“音高”]=63,
[“Idx”]=68,
},
}

我需要把桌子整理好如果我这样做

对于1=1,15 do
注释=选择注释[i]。音高
索引=选择注释[i].Idx
打印(注释、索引)
结束
我会得到这个:

52 55
52 60
52 61
52 65
52 67
58 56
58 58
58 63
58 66
58 69
63 57
63 59
63 62
63 64
63 68
这样我就可以改变音符的音高值,使它们与另一个有和弦音符的表格的音高值相匹配。 因此: 第52至55节 第58至59节 音高63到62

您可以使用该方法

第一个参数是表,第二个(可选)是返回其第一个参数是否小于第二个参数的函数

当然,还有一个相当奇怪的表结构的问题,所以您需要去掉第一个元素,这是没有意义的。最简单的方法是使用

大概是

本地函数排序(选项卡)
表.删除(表1)——删除第一个元素
表.排序(选项卡,函数(a,b)
返回true——您的排序标准在这里
(完)
结束

使用
table.sort(sel_notes,function(a,b)返回a.Pitch..a.Idx
并可能检查无。很好的故事,但您的问题是什么?;)