호출 방법
Functions.collections.cleanArray(array, except, invert)
Functions.collections.cleanArray(이)라는 이름의 의존성으로 기록한 뒤(자동 완성을 수락하면 이렇게 됩니다) 그 이름으로 호출하세요.
하는 일
그 자리에서 항목을 제거하며, 기본적으로 except 값에 나열된 키만 남깁니다. invert가 true면 나열된 키를 제거하고 나열되지 않은 키를 남깁니다. 예외 목록이 없으면 기본적으로 모든 항목을 제거하고, invert가 true면 모두 남깁니다. 입력이 nil이면 아무것도 하지 않습니다.
인수
| 이름 | 유형 | 하는 일 |
|---|---|---|
array | table | nil | 수정할 테이블. nil이면 아무것도 하지 않습니다. |
except | table | nil | 항목을 선택하는 키 값의 선택적 모음. 모음 자체의 키는 무시합니다. |
invert | boolean | nil | true면 나열된 항목을 제거하고, false나 nil이면 나열된 항목만 남깁니다. |
반환값
| 1 | ... | 반환값 없음. 전달된 테이블이 그 자리에서 수정됩니다. |
|---|
버전
기본 제공 도우미는 모든 버전에 등록됩니다. 다른 점은 읽는 게임 API이며, API가 없으면 도우미는 대체 동작을 하거나 이유와 함께 nil을 반환합니다.
게임 API를 직접 읽지 않습니다.
예시
local seen = { Moonfire = true, Sunfire = true, Rake = true }
-- invert: remove the listed keys, keep the rest
Functions.collections.cleanArray(seen, { "Rake" }, true)
return seen.Rake == nil and seen.Moonfire == true소스
Functions/collections.lua, 109번째 줄. 게임에서는 읽기 전용이며, 복제하면 편집 가능한 사본이 생깁니다.
Functions.collections.cleanArray(array, except, invert)
if array == nil then
return
end
if invert == nil then
invert = false
end
for k,_ in pairs(array) do
local skip = invert
if except ~= nil then
for _,v2 in pairs(except) do
if (k == v2) then
skip = not invert
break
end
end
end
if not skip then
array[k] = nil
end
end