JS多维数组多对多算法的问题,求解

如题:
一个多维数组,如何转化成多对多的关系,可能存在N层;

<script>
  var a = [[{a:1},{b:3}], [{d:2},{e:3}]]; //可能存在多层
  
  
  //结果

  [{a:1},{d:2}]
  [{a:1},{e:3}]
  
  [{b:3},{d:2}]
  [{b:3},{e:3}]
  
  ...
</script>
阅读 1.9k
1 个回答
function gen (list) {
  var result = []
  _gen(list, 0, [])
  return result

  function _gen (list, level, path) {
    if (level >= list.length) {
      return result.push(path.slice(0))
    }
    var lev = list[level]
    for (var i = 0; i < lev.length; i += 1) {
      path.push(lev[i])
      _gen(list, level + 1, path)
      path.pop()
    }
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题