妄想是不治之症 说: 和楼上一样,数组个数不确定的时候怎么办呢……
function* r(g1, ...rest) { if (!rest.length) { for(const v of g1||[]) yield [v] } else for(const x of r(...rest)) for(const v of g1) yield [v, ...x] } return Array.from(r([1,2,3,4],[2,6],[5,6,7]))
Retorm 说: 可是你为什么一定要这么改呢,两个还好,数组越多越难想啊,那么为什么不新建一个数组来存呢?
妄想是不治之症 说: 我老是忘记用第三者来中转还是习惯直接在原数据上面改,因为这样比较符合人类大脑的思路。我还是没有习惯用程序的思路想事情 感觉自己又浪费了两个小时的生命,和头发
a1 = [1,2,3,5]; a2 = [2,3,6]; a3 = [2,4,5,6,8];
妄想是不治之症 说: nb
function getPINs(observed) { return observed .split("") .map( (t) => ({ 0: ["0", "8"], 1: ["1", "2", "4"], 2: ["1", "2", "3", "5"], 3: ["2", "3", "6"], 4: ["1", "4", "5", "7"], 5: ["2", "4", "5", "6", "8"], 6: ["3", "5", "6", "9"], 7: ["4", "7", "8"], 8: ["5", "7", "8", "9", "0"], 9: ["6", "8", "9"], }[t]) ) .reduce((pre, cur) => [].concat.apply( [], pre.map((t) => cur.map((g) => t + g)) ) ); }
var mtx = [[1, 2, 3, 4], [2, 6], [5, 6, 7]] var result = [] function helper(i, str) { var orig = str if (i == 3) { result.push(str) console.log(str) return } for (let j = 0; j < mtx[i].length; j++) { str += mtx[i][j] helper(i + 1, str) str = orig } } helper(0, "")
这是考虑代码的美观性,就三四个也没必要这么写就是了
感觉自己又浪费了两个小时的生命,和头发
nb