/** | |
* @template T | |
* @overload | |
* @param {T[][]} nodes | |
* @param {T[]} [target] | |
* @returns {T[]} | |
*/ | |
/** | |
* @template T | |
* @overload | |
* @param {T[]} nodes | |
* @param {T[]} [target] | |
* @returns {T[]} | |
*/ | |
/** | |
* @param {any[]} nodes | |
* @param {any[]} [target] | |
* @returns {any[]} | |
*/ | |
export function flatten(nodes, target = []) { | |
for (let i = 0; i < nodes.length; i += 1) { | |
const node = nodes[i]; | |
if (Array.isArray(node)) { | |
flatten(node, target); | |
} else { | |
target.push(node); | |
} | |
} | |
return target; | |
} | |