类型 函数 库 table.* 返回值 无 修订 版本 2024.3703 关键词 表,数组
对表元素进行原地排序,排序顺序由给定参数决定,排序范围从 table[1]
到 table[n]
,其中 n
为表的长度。它接收要排序的表(数组)以及一个可选的 compare
比较函数。此 compare
函数接收两个参数,如果第一个参数应该排在排序数组的前面,则必须返回 true
。如果**未**给出 compare
函数,则使用标准 Lua 运算符 <
。
排序算法并非完全稳定;也就是说,被给定顺序视为相等的元素,它们的相对位置可能会因排序而改变。
table.sort( array [, compare] )
数组. 要排序的数组。
函数. 如果未给出,则使用标准 Lua 运算符 <
。
local t = { 3,2,5,1,4 } local function compare( a, b ) return a < b -- Note "<" as the operator end table.sort( t, compare ) print( table.concat( t, ", " ) ) --> 1, 2, 3, 4, 5
local t = { 3,2,5,1,4 } local function compare( a, b ) return a > b -- Note ">" as the operator end table.sort( t, compare ) print( table.concat( t, ", " ) ) --> 5, 4, 3, 2, 1
local fruitList = { { fruitName="apple", fruitColor="red" }, { fruitName="watermelon", fruitColor="green" }, { fruitName="orange", fruitColor="orange" }, { fruitName="lemon", fruitColor="yellow" } } local function compare( a, b ) return a.fruitName < b.fruitName end table.sort( fruitList, compare ) for i,v in ipairs( fruitList ) do print( i, v.fruitName ) --> 1 apple --> 2 lemon --> 3 orange --> 4 watermelon end