在2个表中运行会给出错误的输出

时间:2018-02-03 15:25:48

标签: loops lua

现在可能只是我有点不高兴,但是我遇到了一些问题,将2个独立的表中的一些值添加到一个表中,第一个表中的值作为键,值来自第二个表作为值。

这可能与"常规"有所不同。 lua,因为它是一个带有一些修改的lua包装。

请注意,我绝不是Lua的专家,但我一边学习: - )

local Models = {
 ["NO"] = {
        ["Normal"] = {
            categories = { 3,4,5,6,7,8,9 },
        },
        ["Narrow"] = {
            categories = { 3,4,5,6,7,8,9 },
        },
    }
}
   local NumberDefinitions = {
        [0] = 0,
        [1] = 1,
        [2] = 2,
        [3] = 3,
        [4] = 4, 
        [5] = 5,
        [6] = 6,
        [7] = 7,
        [8] = 8,
        [9] = 9
    }
  local TextDefinitions = {
        ["A"] = 1,
        ["B"] = 2,
        ["C"] = 3,
        ["D"] = 4,
        ["E"] = 5,
        ["F"] = 6,    
        ["G"] = 7,
        ["H"] = 8,
        ["I"] = 9,
        ["J"] = 10,
        ["K"] = 11,
        ["L"] = 12,
        ["M"] = 13,
        ["N"] = 14,
        ["O"] = 15,
        ["P"] = 16,
        ["R"] = 17,
        ["S"] = 18,
        ["T"] = 19,
        ["U"] = 20,
        ["V"] = 21,
        ["W"] = 22,
        ["X"] = 23,
        ["Y"] = 24,
        ["Z"] = 25,
    }
local SetPlate = { 
     [1] = 24,
     [2] = 1,
     [3] = 6, 
     [4] = 5,
     [5] = 3,
     [6] = 2,
     [7] = 9
}

我期待的预期输出是

 3 24
    4 1
    5 6
    6 5
    7 3
    8 2
    9 9

尽管如此,我现在得到的输出是

3 9
4 9
5 9 
6 9
7 9 
8 9
9 9

运行:

local PBG = PBG or {}

 for k,v in pairs(Models["NO"].Normal.Categories) do
   if !PBG[v] then 
     for _,val in ipairs(TDM_SetPlate) do
       PBG[v] = val
     end 
  end

提前致谢

1 个答案:

答案 0 :(得分:1)

这是代码,我调整了你的结果:

local t_cat = Models["NO"].Normal.categories
 for i=1, #t_cat do
       if not PBG[i] then     
               PBG[i] = SetPlate[i]
               print( t_cat[i] ,PBG[i] )
        end
  end

这是你需要的吗?

ps:lua是区分大小写的语言,“categories”〜=“Categories”