레퍼런스 › 함수 레퍼런스 › Functions

Functions.collections.cleanArray

공개

호출 방법

Functions.collections.cleanArray(array, except, invert)

Functions.collections.cleanArray(이)라는 이름의 의존성으로 기록한 뒤(자동 완성을 수락하면 이렇게 됩니다) 그 이름으로 호출하세요.

하는 일

그 자리에서 항목을 제거하며, 기본적으로 except 값에 나열된 키만 남깁니다. invert가 true면 나열된 키를 제거하고 나열되지 않은 키를 남깁니다. 예외 목록이 없으면 기본적으로 모든 항목을 제거하고, invert가 true면 모두 남깁니다. 입력이 nil이면 아무것도 하지 않습니다.

인수

이름유형하는 일
arraytable | nil수정할 테이블. nil이면 아무것도 하지 않습니다.
excepttable | nil항목을 선택하는 키 값의 선택적 모음. 모음 자체의 키는 무시합니다.
invertboolean | niltrue면 나열된 항목을 제거하고, 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

함수 레퍼런스(으)로 돌아가기