如何在lua中获取索引和数值

我想要获取数值和对应的索引。从gmatch函数中,我无法直接获取字符 i 的值,所以我无法成功运行这段代码。我想要获取数值和对应的索引,有没有解决方案呢?

val[1] = 24
fx = {}

for i, x in response_body[1]:gmatch([["(%w+)lId"%s*:%s*(%d+)]]) do
fc[i] = x
print(x)
end
/* x prints 14
            18
            23 */

if (val[1] ~= fc[1] and val[1] ~= fc[2] and val[1] ~= fc[3] ) then
val[1] = fc[1]

else
val[1] = val[1]
end
点赞
用户2858170
用户2858170

string.gmatch 返回的是字符串。因此,在你的代码中,如果有匹配,ix 都是字符串。

f[1]f["1"] 不同。

因此,在你的代码中,fc[1] 等等都是 nil 值,因此不能等于 24

你可以使用 tonumber 将一个 string 转换为一个 number 值。但请记住,将按 %w 匹配的字母数字字符转换为数字不一定可行。你必须避免使用 nil 作为表索引,否则会出现错误。

2017-11-30 19:11:00