local result = {} -- 接收排序后的table
local obj = {1,2,"f",4,5,6,"a","b",1,3} -- 需要进行排序的table
for i,v in ipairs(obj) do
print("--排序前--",i,v)
end
-- 排序方法 参数为要排序的table
function shuffle(_table)
-- 判断如果不为table则直接返回
if type(_table)~="table" then
return
end
local _result = {}
local _index = 1
while #_table ~= 0 do
local ran = math.random(0,#_table)
if _table[ran] ~= nil then
_result[_index] = _table[ran]
table.remove(_table,ran)
_index = _index + 1
end
end
return _result
end
result = shuffle(obj)
for i,v in ipairs(result) do
print("--排序后--",i,v)
end
在这个方法中,table中的元素不能为nil
我使用这个方法是在点击按钮时实现一种刷新数据的效果
如果有大佬有可以在table中包含nil这个元素还能实现排序的麻烦评论里写下,谢谢大佬