3
행렬 내에서 행렬의 길이를 가져 오는 방법을 알아내는 데 어려움이 있습니다 (중첩 된 깊이 3). 코드가 간략히 설명하는 것은 ... 게시자가 이미 배열에 있는지 확인한 다음 배열에 새 게시자와 해당 시스템이있는 새 열을 추가하거나 새 게시자와 해당 시스템을 추가합니다. 어레이 출판사중첩 배열 길이 loo
output[k][1]
이 존재하는 동일한 발행자 내의 다양한 시스템의 양에있어서, 상기 제 []를 다른 게시자 의 양 [제 2 인
게시자 어레이 output[k][2][l]
임
그래서 세 번째 깊은 배열의 길이가 어떻게되는지 알 수 있습니까?
코드는 나중에 참조 할 수 있도록 여기에 수정되었습니다function reviewPubCount()
local output = {}
local k = 0
for i = 1, #keys do
if string.find(tostring(keys[i]), '_') then
key = Split(tostring(keys[i]), '_')
for j = 1, #reviewer_code do
if key[1] == reviewer_code[j] and key[1] ~= '' then
k = k + 1
output[k] = {}
-- output[k] = reviewer_code[j]
for l = 1, k do
if output[l][1] == reviewer_code[j] then
ltable = output[l][2]
temp = table.getn(ltable)
output[l][2][temp+1] = key[2]
else
output[k][1] = reviewer_code[j]
output[k][2][1] = key[2]
end
end
end
end
end
end
return output
end
: http://codepad.org/3di3BOD2#output
은 어디'ltable'와'temp' 있습니다 선언? 현재 코드에 나타나므로 전역 변수 인 것 같습니다. 그들 앞에 'local' 키워드를 추가하는 것을 잊었습니까? 아니면 디자인에서 실제로 전역 키워드입니까? –
@ user2872731 3 단계 테이블의 * 어느 * 길이? – dualed
매직 넘버 대신 설명 문자열을 사용하는 것이 좋습니다. 'output [k] .publisher'와 서브 테이블'output [k] .reviewer_codes'라는 필드를 갖게되면 코드를 훨씬 더 깔끔하게 정리할 수 있습니다. – kikito