From 9902d07966ee5a7c804107a440585ade324c1d05 Mon Sep 17 00:00:00 2001 From: Ninni Pipping Date: Mon, 3 Apr 2023 21:12:13 +0200 Subject: Document how to make custom min/max for Array (cherry picked from commit 96ab31a7117c110da025a39390bdecf36892e7fa) --- doc/classes/Array.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'doc') diff --git a/doc/classes/Array.xml b/doc/classes/Array.xml index 86f8f357f8..fb35fc7a98 100644 --- a/doc/classes/Array.xml +++ b/doc/classes/Array.xml @@ -441,12 +441,23 @@ Returns the maximum value contained in the array if all elements are of comparable types. If the elements can't be compared, [code]null[/code] is returned. + To find the maximum value using a custom comparator, you can use [method reduce]. In this example every array element is checked and the first maximum value is returned: + [codeblock] + func _ready(): + var arr = [Vector2(0, 1), Vector2(2, 0), Vector2(1, 1), Vector2(1, 0), Vector2(0, 2)] + # In this example we compare the lengths. + print(arr.reduce(func(max, val): return val if is_length_greater(val, max) else max)) + + func is_length_greater(a, b): + return a.length() > b.length() + [/codeblock] Returns the minimum value contained in the array if all elements are of comparable types. If the elements can't be compared, [code]null[/code] is returned. + See also [method max] for an example of using a custom comparator. -- cgit v1.2.3