From 7748b24adb2309bc98a16f70e51ba6508f95ec56 Mon Sep 17 00:00:00 2001 From: evolutionleo Date: Sun, 30 Aug 2020 15:21:16 +0300 Subject: [PATCH] .join() method added join and push methods (push is just a copy of add and append) --- ArrayClass.gml | 55 ++++++++++++++---- ArrayClass.yymps | Bin 8909 -> 9103 bytes .../scripts/ArrayClass/ArrayClass.gml | 55 ++++++++++++++---- Sample+Tests/scripts/Tests/Tests.gml | 3 + 4 files changed, 91 insertions(+), 22 deletions(-) diff --git a/ArrayClass.gml b/ArrayClass.gml index 157e723..af55f8c 100644 --- a/ArrayClass.gml +++ b/ArrayClass.gml @@ -298,6 +298,36 @@ function Array() constructor { return self; } + ///@function join(separator) + ///@description returns a string, containing all of the array values separated by 'sep' + ///@tip to join part of the array, use array.slice().join() + ///@param {string} separator + ///@param {bool} show_bounds + static join = function(sep, show_bounds) { + if is_undefined(sep) + sep = ", " + if is_undefined(show_bounds) + show_bounds = true + + _sep = sep + + if show_bounds + str = "[" + else + str = "" + + forEach(function(el, i) { + str += string(el) + if(i < size-1) + str += _sep + }) + + if show_bounds + str += "]" + + return str + } + ///@function lambda(func) ///@description Loops through the array and applies the function to each element ///@param {function} func(x, *pos) @@ -393,6 +423,19 @@ function Array() constructor { return ans; } + ///@function push(value, value2, ..) + ///@description Mirrors append() method + ///@param {any} value + static push = function(value) { + for(var i = 0; i < argument_count; ++i) { + var val = argument[i] + content[size] = val; + ++size; + } + + return self; + } + ///@function pushBack(value) ///@description inserts a value to the beginning of the array ///@param {any} value @@ -616,17 +659,7 @@ function Array() constructor { static toString = function() { - str = "["; - - forEach(function(el, i) { - str += string(el); - if(i < size-1) - str += ", "; - }); - - str += "]"; - - return str; + return self.join() } } diff --git a/ArrayClass.yymps b/ArrayClass.yymps index 3f3afdda929c5f76ead08af959b4923dd02c4019..39b3b9ad26836756fc99a7ffd46968cd0b4244a3 100644 GIT binary patch delta 8347 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 E1v~Km>;M1& delta 8153 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