src / helpers / array_helper.gd

Attached Scenes

Note
No attached scenes.

Code

extends Node
class_name ArrayHelper


static func sum(arr: Array, attr_or_func: String) -> int:
	if attr_or_func.ends_with('()'):
		var f_name = attr_or_func.replace('()', '')
		return arr.reduce(func(accum, r):
			if not r: return accum
			return accum + int(r.call(f_name)), 0)
	else:
		return arr.reduce(func(accum, r):
			if not r: return accum
			return accum + int(r.get(attr_or_func)), 0)



static func build(number: int, value: Variant = null) -> Array:
	var arr = []
	for i in number: arr.push_back(value)
	return arr


static func diff(arr_a: Array, arr_b: Array) -> Array:
	return arr_a.filter(func(x): return not arr_b.has(x))