我的程序过滤了一些奇数,但也过滤了一些偶数

所以我需要编写一个程序,它以表格作为输入并输出相同的表格,但排除偶数键及其值,保留奇数键及其值。

local function selecteer_oneven(tabel)
    for q, n in ipairs(tabel) do
    if (q % 2) == 0 then
      table.remove(tabel, q)
    end
  end
  return tabel
end

local function printtabel(tabel)
    for k,v in pairs(tabel) do
        print(k,v)
    end
end

io.write("Geef een lua-tabel: ")
local tabelstring = "t = "..io.read()
local string2tab = loadstring(tabelstring)
string2tab()
local resultaat = selecteer_oneven(t)
printtabel(resultaat)

我的输入是

{ "aap", "kat", "hond", "paard", "kip", "salamander", "programmeren is leuk" }

我的输出是

1   aap
2   hond
3   paard
4   salamander
5   programmeren is leuk

(对不起,它是荷兰语)

"aap","hond","programmeren is leuk" 是唯一的奇数。"paard" 和 "salamander" 是偶数。

点赞
用户11740758
用户11740758

不要在同时检查的表上执行 table.remove。

最好做一个第二个本地表并插入“q”。

最后返回第二个表...

local function selecteer_oneven(tabel)
    local tabel2={}
    for q, n in ipairs(tabel) do
    if (q % 2) ~= 0 then
      table.insert(tabel2, q)
    end
  end
  return tabel2
end

...暂未测试;-)

编辑:使用 lua -i 测试

-- <ready>
>function selecteer_oneven(tabel)
    local tabel2={}
    for q, n in ipairs(tabel) do
    if (q % 2) ~= 0 then
      table.insert(tabel2, q)
    end
  end
  return tabel2
end
-- <ready>
>dump(selecteer_oneven({1,2,3,4,5,6,7,8,9,10}))
1=1
2=3
3=5
4=7
5=9
-- <ready>
>-- whats dump?
-- <ready>
>code.dump
-- dump()
return function(dump)
for key,value in pairs(dump) do
  io.write(string.format("%s=%s\n",key,value))
end
end
-- <ready>
2021-03-10 14:15:00