#2649
Medium JavaScript Nested array generator
80.4% acceptance
Mar 2, 2026
171
13
Given a multi-dimensional array of integers, return a generator object which yields integers in the same order as inorder traversal.
A multi-dimensional array is a recursive data structure that contains both integers and other multi-dimensional arrays.
inorder traversal iterates over each array from left to right, yielding any integers it encounters or applying inorder traversal to any arrays it encounters.
Solution
TypeScript
Time O(n)
Space O(1)
type MultidimensionalArray = (MultidimensionalArray | number)[];
function* inorderTraversal(
arr: MultidimensionalArray,
): Generator<number, void, unknown> {
for (const item of arr) {
if (Array.isArray(item)) {
yield* inorderTraversal(item as MultidimensionalArray);
} else {
yield item as number;
}
}
}
/**
* const gen = inorderTraversal([1, [2, 3]]);
* gen.next().value; // 1
* gen.next().value; // 2
* gen.next().value; // 3
*/