lua 中不同频率的表中的两个循环

Two loops from tables at different frequencies in lua

我正在构建一个循环,它应该使用不同的频率来切换到下一个值。一个例子:

local color = {"Blue", "Green", "Red"}
local group = {1, 2, 3}

for i=1.3 do
  cmd(string.format('group %i ; store color %q ; clearall', group[i], color[j]))
end

这应该导致:

Group 1 Blue,
Group 1 Green,
Group 1 Red,
Group 2 Blue.......

我无法在循环中得到循环,因为我不能让 table 组在 2 个循环中只向上移动一次。同样使用双精度值或使用 [i] 两次似乎也不起作用。

希望你能帮帮我。

运行 九次迭代的循环(即您正在进行的组合数),并使用 math.floor 计算索引:

local color = {"Blue", "Green", "Red"}
local group = {1, 2, 3}
for i=0, #color*#color-1 do
    local g = math.floor(i/3)
    local c = i-3*g
    print(string.format('group %i ; store color %q ; clearall', group[g+1], color[c+1]))
end

Demo.

更简单的版本

for i,v in pairs(group) do
for k,c in pairs(color) do
print("Group " .. v .. " " .. c)
end
end

很简单,它所做的就是同时遍历组数组和颜色数组并打印出每个值,每次遍历组数组时,它都会遍历颜色数组中的所有项目, Lua 内置了合并字符串的技术,你不需要使用字符串库:)

考虑' '" "

区别的另一种方式
for i=1, #color do 
  for _, v in pairs(color) do
      print('group '..i..' ; store color "'..v..'" ; clearall')
  end
end