ruiming/algorithm

不定长二维数组的罗列

Opened this issue · 0 comments

function mix(routes, index = 0) {
  let len = Object.keys(routes).length
  let key = Object.keys(routes)[index]
  let items = []
  for (let val of routes[key]) {
    if (index === len - 1) {
      items.push({ [key]: val })
    } else {
      let count = index
      for (let item of mix(routes, ++count)) {
        items.push(Object.assign({ [key]: val }, item))
      }
    }
  }
  return items
}