如何在lua的同一“ for”上添加多个数组

问题描述 投票:1回答:2

我如何对lua中的2个数组使用“对于k,成对的j做”?

 local blipmarker1 = {
      { x = 10 , y = 5, z = 3 },
      { x = 5, y = 5, z= 3}
}
local blipmarker2 = {
      { x = 100, y= 150, z=30 }
}
function createtext(){
    local pos = GetEntityCoords(PlayerPedId(), true)
    for k, j in pairs(blipmarker1,blimarker2) do
        draw3DText(pos.x, pos.y, pos.z, j.x, j.y, j.z)
    end
 }    
lua
2个回答
1
投票

Function pairs()仅接受类型为[[table的一个参数。您需要为每个表循环:

for k,j in pairs(blipmarker1) do ... end for k,j in pairs(blipmarker2) do ... end

0
投票
您可以编写自己的有状态multipairs迭代器。有关更多详细信息,请参阅Lua中的编程的第9.3章“协程作为迭代器”:https://www.lua.org/pil/9.3.html

local function multipairs(tables) return coroutine.wrap(function() for _, t in pairs(tables) do -- Maybe you want ipairs here for k, v in pairs(t) do coroutine.yield(k, v) end end end) end local blipmarker1 = { { x = 10 , y = 5, z = 3 }, { x = 5, y = 5, z= 3} } local blipmarker2 = { { x = 100, y= 150, z=30 } } for _, j in multipairs{blipmarker1, blipmarker2} do print(j.x, j.y, j.z) end

© www.soinside.com 2019 - 2024. All rights reserved.