常用操作函数 | lua helper function
2019-8-24 21:54:5
收藏:1
阅读:1959
评论:0
lua helper function
ps: 使用 _G.function_name 定义可以实现全局函数
字符串分隔成数组
-- splite str to arr by symbol
function explode(str, symbol)
local rt= {}
string.gsub(str, '[^'..symbol..']+', function(w) table.insert(rt, w) end )
return rt
end
将数组使用给定符号拼接成字符串
-- make up a string from array
function implode(arr, symbol)
local implode_str = ''
symbol = symbol or ','
for key, value in pairs(arr) do
implode_str = implode_str .. value .. symbol
end
return string.sub(implode_str, 1, #implode_str - 1)
end
将数组 table 逆向
function table_reverse(tbl)
for i=1, math.floor(#tbl / 2) do
tbl[i], tbl[#tbl - i + 1] = tbl[#tbl - i + 1], tbl[i]
end
return tbl
end
删除 table 中的一个给定的元素
-- remove item in table
function G.table_remove(tab, rm)
local result = tab
for k, v in pairs(rm) do
for a_k, a_v in pairs(result) do
-- array
if type(a_k) == 'number' then
-- object
if type(a_v) == 'table' then
result[a_k][v] = nil
elseif v == a_v then
table.remove(result, a_k)
end
else
-- hash array
if v == a_k then
result[a_k] = nil
end
end
end
end
return result
end
对数组型 table 去重
-- unique a array
function G.unique(arr)
local hash = {}
local res = {}
for _,v in ipairs(arr) do
if not hash[v] then
hash[v] = true
table.insert(res, v)
end
end
return res
end
对 hash table 按 key 排序
-- sort a hashTable by key
-- use example: for k,v in pairsByKeys(hashTable)
function sortByKey(f)
local a = {}
for n in pairs(self) do
table.insert(a, n)
end
table.sort(a, f)
local i = 0 -- iterator variable
local iter = function()
-- iterator function
i = i + 1
if a[i] == nil then
return nil
else
return a[i], self[a[i]]
end
end
return iter
end
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
- 如何创建一个 lua 脚本以针对特定键为 fluentbit 进行限流
- 如何在Lua中将变量从Lua推送到C ++
- 使用LUA/perl将Nginx重写查询参数值转换为小写字母
- 在 Roblox 中,我正在尝试让当你使用接近提示时,一个图像标签变得可见并在重新加入时仍然可见
- 处理多个有序数据存储请求
- 如何在lua中传递一个对象到json,用php?