哈士奇WWW
2019-03-13 13:13:42
var arr = ['1','2'];var arr1 =['a','b','c','d'];var arr2 =['!','@','#','$'];// ... arr3 arr4 arr5 很多個var newArr = [];arr.forEach(a1=>{ arr1.forEach(a2=>{ arr2.forEach(a3=>{ newArr.push(a1+a2+a3) }) })});如何用函數(shù)去實現(xiàn),可以傳入多個數(shù)組達到上面的效果
2 回答

互換的青春
TA貢獻1797條經(jīng)驗 獲得超6個贊
來個循環(huán)的,不過效率似乎沒遞歸那個高,可能是因為創(chuàng)建的對象要多一些
function b(...groups) {
let r = [""];
for (let group of groups) {
r = r.map(t1 => group.map(t2 => t1 + t2))
.reduce((acc, t) => acc.concat(t));
}
return r;
}
如果不使用 map(),直接用循環(huán)會效率高一些,比遞歸的效率高
function c(...groups) {
let r = [""];
for (let group of groups) {
const newr = [];
for (let t1 of r) {
for (let t2 of group) {
newr.push(t1 + t2);
}
}
r = newr;
}
return r;
}
添加回答
舉報
0/150
提交
取消