DEV Community

SalahElhossiny
SalahElhossiny

Posted on

Nested Array Generator

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.

var inorderTraversal = function*(arr) {
    arr = arr.flat(Infinity) 
    let i = 0, n = arr.length; 
    while(i < n){
        yield arr[i++]
    }
};


Enter fullscreen mode Exit fullscreen mode

Top comments (1)

Collapse
 
fraxken profile image
Thomas.G • Edited

Use yield star?

var inorderTraversal = function*(arr) {
  yield* arr.flat(Infinity);
};
Enter fullscreen mode Exit fullscreen mode

(Note: but the generator is useless as flat is eager).