From 17ce49bdf1b9334d34744ef054d59c36e7ad6773 Mon Sep 17 00:00:00 2001 From: Xertis Date: Sat, 1 Feb 2025 01:34:11 +0300 Subject: [PATCH] add table.slice --- doc/ru/scripting/extensions.md | 6 ++++++ res/scripts/stdmin.lua | 12 ++++++++++++ 2 files changed, 18 insertions(+) diff --git a/doc/ru/scripting/extensions.md b/doc/ru/scripting/extensions.md index 82235b963..cce639eca 100644 --- a/doc/ru/scripting/extensions.md +++ b/doc/ru/scripting/extensions.md @@ -88,6 +88,12 @@ table.deep_flat(t: table) -> table Возвращает глубокую "плоскую" версию исходной таблицы. +```lua +table.slice(arr: table, start: number | nil, stop: number | nil) -> table +``` + +Возвращает обрезанную версию таблицы с индекса **start** до индекса **stop** включительно, при этом пары ключ-значение не сохраняются в новой таблице. При значениях **nil** начинает с **1** и заканчивает **#arr** соответственно. + ```lua table.tostring(t: table) -> string ``` diff --git a/res/scripts/stdmin.lua b/res/scripts/stdmin.lua index 07c42e35f..fba17a53a 100644 --- a/res/scripts/stdmin.lua +++ b/res/scripts/stdmin.lua @@ -196,6 +196,18 @@ function table.deep_flat(t) return flat end + +function table.slice(arr, start, stop) + local sliced = {} + start = start or 1 + stop = stop or #arr + + for i = start, stop do + table.insert(sliced, arr[i]) + end + + return sliced +end ---------------------------------------------- local pattern_escape_replacements = {