我想創建多個數組的組合。在Javascript中創建與多個子數組的數組的所有組合
這裏是我的陣列看起來像:
var a1 = ["1", "2", "3"];
var a2 = ["a", "b"];
var a3 = ["q", "w", "e"];
var a4 = [a1, a2, a3];
我已經試過一個代碼,看起來像這樣:
function allPossibleCases(a4) {
if (arr.length == 1) {
return arr[0];
} else {
var result = [];
var allCasesOfRest = allPossibleCases(arr.slice(1)); // recur with the rest of array
for (var i = 0; i < allCasesOfRest.length; i++) {
for (var j = 0; j < arr[0].length; j++) {
// console.log(arr[0][j]);
// console.log(allCasesOfRest[i]);
result.push(arr[0][j] + allCasesOfRest[i]);
}
}
return result;
}
}
這是我提供正確的組合,它看起來像這樣:
Array (18)
0 "1aq"
1 "2aq"
2 "3aq"
3 "1bq"
4 "2bq"
5 "3bq"
6 "1aw"
7 "2aw"
8 "3aw"
9 "1bw"
10 "2bw"
11 "3bw"
12 "1ae"
13 "2ae"
14 "3ae"
15 "1be"
16 "2be"
17 "3be"
但我想(所需的輸出)它是這樣的:
Array (18)
0 ["1", "a", "q"]
1 ["2","a","q"]
2 ["3","a","q"]
3 ["1","b","q"]
4 ["2","b","q"]
5 ["3","b","q"]
6 ["1","a","w"]
7 ["2","a","w"]
8 ["3","a","w"]
9 ["1","b","w"]
10 ["2","b","w"]
11 ["3","b","w"]
12 ["1","a","e"]
13 ["2","a","e"]
14 ["3","a","e"]
15 ["1","b","e"]
16 ["2","b","e"]
17 ["3","b","e"]
基本上我試圖實現的是組合數組而不是字符串。
可能是錯誤的,但改變這一行result.push(ARR [0] [j]的+ allCasesOfRest [I]); to this result.push(Array.prototype.push.apply(arr [0] [j],allCasesOfRest [i])); –
您可以使用您當前的代碼並調用'result.split(「」)' – varontron
我試過這些,但劑量似乎正在工作。還有其他建議嗎? @varontron – user3201500