///|
/// Flatten array to specified depth
fn flatten_array_into(
arr : Array[Json],
depth : Int32,
out : Array[Json],
) -> Unit {
guard depth > 0 else {
for elem in arr {
out.push(elem)
}
return
}
for elem in arr {
match elem {
Array(inner) => flatten_array_into(inner, depth - 1, out)
_ => out.push(elem)
}
}
}
///|
fn flatten_array(arr : Array[Json], depth : Int32) -> Array[Json] {
guard depth > 0 else { return arr }
let result : Array[Json] = []
flatten_array_into(arr, depth, result)
result
}