在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  Java  HTML/ 一道js的數(shù)組算法題

一道js的數(shù)組算法題

有一個(gè)數(shù)組:

const arr = [[1,2],3,[4,5,6]];

定義一個(gè)函數(shù),傳入arr后,返回值為一個(gè)二維數(shù)組:

[[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))
2018年8月2日 00:30
編輯回答
北城荒
function multiply(arr1, arr2) {
  let r = []
  arr1 = Array.isArray(arr1) ? arr1 : [arr1]
  arr2 = Array.isArray(arr2) ? arr2 : [arr2]
  arr1.forEach(function(i){
    arr2.forEach(function(j){
      let item = (Array.isArray(i) ? i : [i]).concat(j)
      r.push(item)
    })
  })
  return r
}

const arr = [[1,2],3,[4,5,6]]
let result = arr.reduce((acc, curr) => multiply(acc, curr))
console.log('result', result)
2017年2月10日 17:27