如何在Lua中返回数组的所有值?
2016-3-29 17:26:33
收藏:0
阅读:129
评论:2
如果这是一个愚蠢的问题,那我很抱歉,我是一个经验不太丰富的程序员。
我正在尝试使用Lua返回数组中的所有值。我可以通过调用它们的索引(例如read_data[2])返回单个元素,但由于数组中的元素数量是变量,我无法简单地键入此内容。我的代码:
function readformatEvent()
local read_data = {}
local duplicate
local unique_data = {}
for i=1,16 do
read_data[i] = readResult(i):readData()
end
for i=1,16 do
duplicate = 0
for j=(i+1),15 do
if read_data[i] == read_data[j] then
duplicate = 1
end
end
if duplicate == 0 then
unique_data[i] = read_data[i]
end
end
return unique_data
end
unique_data是一个由read_data中独特值组成的数组。read_data可以由1到16个元素组成。能够看到完整的数组将帮助我继续完善代码和故障排除技巧。
谢谢您。
点赞
用户6130593
感谢所有的帮助。以下是最终可行的代码。我知道它并不高效,但现在我能得到正确的输出。
function readformatEvent()
function readformatEvent()
local read_data = {}
local unique_data = {}
local count = 1
local output = ""
local codes = readResult():readCount()
--从捕获的读取数据中创建数组
for i=1,16 do
read_data[i] = readResult(i):readData()
end
--将数组中的第二个重复值转换为 nil 值
for k,v in pairs(read_data) do
for m,w in pairs(read_data) do
if k ~= m then
if w == v then
read_data[m] = nil
end
end
end
end
--从数组中删除 nil 值
for i=1,16 do
if read_data[i] ~= nil then
unique_data[count] = read_data[i]
count = count+1
end
end
--以正确的格式输出唯一的值
if count == 12 and codes == 16 then
count = count - 1
else
count = count - 2
end
for i=1,count-1 do
output = output..unique_data[i]..", "
end
return output..unique_data[count]
end
2016-03-31 15:02:30
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
以下是一个简单的例子:
-- 一个示例表格 t = {1,2,4,5,1,2,7,8,5,4,9,3} -- 对于表格中的每个值 v for k,v in pairs(t) do -- 与所有剩余的值 w 进行比较 for m,w in pairs(t) do -- 但不要与自己进行比较 if k ~= m then -- 删除表格中的非唯一值 if w == v then t[m] = nil t[k] = nil end end end end -- 打印结果 for k,v in pairs(t) do print(v) end