我有一个完整的零件号:TCW-K1-A4-B21A
唯一的常量是TCW-PART,其他所有内容都指定了零件号的选项。我的最终目标是能够在csv文件中的每个配置中拥有所有可能的零件号。我的编程技能有限,所以我尝试使用下面的代码解决我的javascript问题:
var tcwArray = [['TCW-'],
['K', 'J', 'T', 'R', 'S', 'E'],
['1-', '2-', '3-', '4-', '5-', '6-', '7-', '8-'],
['A', 'B'],
['1-', '2-', '3-', '4-', '5-', '6-', '7-', '8-', '9-'],
['A', 'B', 'C', 'D'],
['0', '1', '2', '3'],
['0', '1', '2'],
['1', 'A', 'B', 'C', 'D', 'E'],
['A', 'B']];
function allPossibleCases(arr) {
if (arr.length === 0) {
return [];
}
else if (arr.length === 1){
return arr[0];
}
else {
var result = [];
var allCasesOfRest = allPossibleCases(arr.slice(1)); //recur with the rest of array
for (var c in allCasesOfRest) {
for (var i = 0; i < arr[0].length; i++) {
result.push(arr[0][i] + allCasesOfRest[c]);
}
}
return result;
}
}
var r=allPossibleCases(tcwArray);
这对我不起作用,很可能是由于记忆的限制。我的问题是,有没有更好的语言可以让我快速学习?
最佳答案
只有当数字完成时(或者像Justin提到的那样存储在文件中),才可以附加到结果
var results = [];
function allPossibleCases(arr, number) {
if (arr.length === 0) {
return result.push(number);
}
else {
var first = arr[0];
var rest = arr.slice(1);
for (var i = 0; i < first.length; i++) {
allPossibleCases(rest, number + first[i]);
}
}
}