당신의 질문을 바탕으로, 당신은 당신의 데이터 테이블 tab
을 통과하고 minitab
를 얻기 위해이 코드를 사용할 수있는 GUI 배열에 사용되는 : 그러나
--data
tab = {
{id = "4204", label = "2", desc = "Roancyme"},
{id = "5517", label = "9", desc = "Bicktuft"},
{id = "1035", label = "3", desc = "Pipyalum"},
}
--temporary table
local minitab = {}
for i, option in ipairs(tab) do
minitab[option.id] = option.label
end
--print minitab
print('<select>')
for id, label in pairs(minitab) do
print(string.format('<option value="%s">%s</option>', id, label)) --> <option value="1035">3</option>
end
print('</select>')
print()
, 나는 그것을 만들 필요가 생각하지 않습니다 원래 테이블 tab
을 쉽게 탐색 할 수 있고 필요한 출력을 직접 추출 할 수 있기 때문에 이러한 값을 저장하는 임시 테이블. 같은 :
--print directly from tab
print('<select>')
for i, option in ipairs(tab) do
print(string.format('<option value="%s">%s</option>', option.id, option.label)) --> <option value="1035">3</option>
end
print('</select>')
print()
당신이 드롭 다운 목록을 표시하기 전에 함께 작업을해야하지 않는 한 (예를 들어 라벨 등을 기준으로 정렬의 label
에 minitab
일부 접두사를 추가) 원래 데이터 테이블 tab
을 방해하고 싶지는 않습니다. 이 경우 임시 테이블을 사용하는 것이 좋습니다.
--format values in temporary table
local minitab = {}
for i, option in ipairs(tab) do
local minitabID = option.id
local minitabLabel = string.format('Item %s - %s', option.label, option.desc)
table.insert(minitab, {id = minitabID, label = minitabLabel})
end
--sort temporary table
table.sort(minitab, function (o1, o2) return o2.label > o1. label end)
--print formatted values from temporary table
print('<select>')
for i, option in ipairs(minitab) do
print(string.format('<option value="%s">%s</option>', option.id, option.label)) --> <option value="4204">Item 2 - Roancyme</option>
end
print('</select>')
NB : 테이블 반복 ipairs
를 사용하는 한이 pairs
를 사용하는 메모를 확인하시기 바랍니다. 전체 코드 스 니펫 here을 참조하십시오.
k와 v를 i, value로 바꿨습니다. - 이제 minitab {1761 = 2, 2071 = 4}의 테이블 형식으로 2 개의 변수를 저장하려면 어떻게해야합니까? 코멘트를 편집 할거야, 코멘트 코드는 좋지 않다 : D –