Lua嵌套表筛选问题:如何输出ordered=true的完整元素信息
修正Lua代码实现预期输出
你的代码存在两个关键问题:
- 内层循环匹配到
ordered=true时,打印amount字段错误使用了当前循环的d(即ordered的值true),而非子表中amount的实际数值。 - 无需遍历子表的所有字段,直接判断子表的
ordered字段即可,逻辑更简洁高效。
修正后的代码如下:
Fruits = { apple = { ordered = true, amount = 10 }} for fruit_name, fruit_info in pairs(Fruits) do if fruit_info.ordered == true then print(fruit_name .. " ordered: " .. tostring(fruit_info.ordered) .. " | " .. fruit_name .. " amount: " .. tostring(fruit_info.amount)) end end
运行后会输出预期结果:
apple ordered: true | apple amount: 10
补充说明
- 直接通过
fruit_info.ordered判断是否符合筛选条件,省去了不必要的内层循环遍历。 - 打印时直接调用子表的
amount字段值fruit_info.amount,确保获取到正确的数值。
内容的提问来源于stack exchange,提问作者Bkbbkk Kkbbkb
相关产品推荐
相关产品推荐

