mirror of
https://github.com/CommunityOx/ox_lib.git
synced 2026-08-17 06:56:03 +01:00
feat(array): isArray method
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
---@class Array : OxClass
|
||||
local Array = lib.class('Array')
|
||||
|
||||
---@alias ArrayLike<T> Array | { [number]: T }
|
||||
|
||||
---@private
|
||||
function Array:constructor(...)
|
||||
local arr = { ... }
|
||||
@@ -18,7 +20,7 @@ function Array:__newindex(index, value)
|
||||
end
|
||||
|
||||
---Create a new array containing the elements from two arrays.
|
||||
---@param arr Array | any[]
|
||||
---@param arr ArrayLike
|
||||
function Array:merge(arr)
|
||||
local newArr = table.clone(self)
|
||||
local length = #self
|
||||
@@ -167,6 +169,21 @@ function Array:reduce(reducer, initialValue)
|
||||
return accumulator
|
||||
end
|
||||
|
||||
---Returns true if the given table is an instance of array or an array-like table.
|
||||
---@param tbl ArrayLike
|
||||
---@return boolean
|
||||
function Array.isArray(tbl)
|
||||
if not type(tbl) == 'table' then return false end
|
||||
|
||||
local tableType = table.type(tbl)
|
||||
|
||||
if tableType == 'array' or tableType == 'empty' or Array.instanceOf(tbl, Array) then
|
||||
return true
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
lib.array = Array
|
||||
|
||||
return lib.array
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
---
|
||||
---Provides non-neglibible performance gains due to msgpacking all arguments _once_, instead of per-target.
|
||||
---@param eventName string
|
||||
---@param targetIds number | number[]
|
||||
---@param targetIds number | ArrayLike<number>
|
||||
---@param ... any
|
||||
function lib.triggerClientEvent(eventName, targetIds, ...)
|
||||
local payload = msgpack.pack_args(...)
|
||||
local payloadLen = #payload
|
||||
|
||||
if type(targetIds) == 'table' and table.type(targetIds) == 'array' then
|
||||
if lib.array.isArray(targetIds) then
|
||||
for i = 1, #targetIds do
|
||||
TriggerClientEventInternal(eventName, targetIds[i] --[[@as string]], payload, payloadLen)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user