一道js的数组算法题
有一个数组:
```
const arr = [[1,2],3,[4,5,6]];
```
定义一个函数，传入arr后，返回值为一个二维数组：
```
[[1,3,4],[2,3,4],[1,3,5],[2,3,5],[1,3,6],[2,3,6]]
```
```
function f(arr) {
  var ret = []

  function fi(result, i) {
    if (i === -1) {
      ret.push(result)
    } else {
      let items = arr[i]
      if (!Array.isArray(items)) {
        items = [items]
      }
      items.forEach(item => {
        fi([item,...result], i - 1)
      });
    }
  }
  fi([], arr.length - 1)
  return ret
}
const arr = [[1,2],3,[4,5,6]];
console.log(f(arr))
```