Как мне отформатировать значения в моей таблице lua: t = {['foo'] = true, ['bar'] = true}? - PullRequest
1 голос
/ 24 сентября 2019

Это относится к предыдущему вопросу: Проверка значений в нескольких местах и ​​возвращение совпадения, только если источники уникальны .

По сути, функция полагается на данные, находящиеся вформат:

local vendors = {
                 Asda = {Kellogg = true, Cadbury = true, Nestle = true, Johnsons = true, Pampers = true, Simple = true}, 
                 Tesco = {Kellogg = true, Cadbury = true, Nestle = true, Johnsons = true},
                 Spar ={Nestle = true, Johnsons = true, Pampers = true, Simple = true}
               }

Тем не менее, я собираю данные путем циклического перемещения по путям и добавления их в таблицу, которая просто создает список, такой как:

Asda = {"Kellogg", "Cadbury", "Nestle", "Johnsons", "Pampers", "Simple"}

Существуетя могу добавить их другим способом:

local Asda = {}
for index = 1, 9 do 
local pathAsda = factReference -- some path location which changes by index increasing
if pathAsda ~= "" then
    Asda[#Asda+1] = {[Asda] = true} -- table.insert(Asda, pathAsda), for the previously mentioned format
end

Что бы меня оставило с:

 Asda= {{Kellogg = true}, {Cadbury = true}, {Nestle = true}, {Johnsons = true}, {Pampers = true}, {Simple = true}}

Я бы тогда использовал:

table.insert(vendorSources,Asda)

Ни один из этих форматовработайте с функцией в ответе, и я не могу понять, как изменить какой-либо раздел, чтобы это работало.

function intersection(s1, s2) -- finds out if two sets (s1 & s2) overlap
local output = {}

  for key in pairs(s1) do
    output[#output + 1] = s2[key]
  end
return output
end

Есть ли способ отредактировать любой список (Asda)быть в правильном формате?

1 Ответ

1 голос
/ 24 сентября 2019

Вам нужно будет использовать Asda[pathAsda] = true вместо Asda[#Asda+1] = {[pathAsda] = true}, но имейте в виду, что элементы заказа в этом случае не гарантируются.

...