declare function libjn:descendant-arrays($sequence as item()*) as array()* { for $item in $sequence return typeswitch ($item) case array() return ( $item, libjn:descendant-arrays($item()) ) case object() return libjn:descendant-arrays(libjn:values($item)) default return () };
libjn:descendant-arrays( ( { "foo" : { "bar" : [ 1, 2 ] } }, [ [ { "foo" : "bar", "bar" : "foo" } ] ], true(), 1, jn:null() ) )
[ 1, 2 ] [ [ { "foo" : "bar", "bar" : "foo" } ] ] [ { "foo" : "bar", "bar" : "foo" } ]