我正在尝试创建一个字符串数组,并根据数组字符串的长度产生可能性。例如:
var someStr = ["a","b","c","d"];
//I want to produce this outcome
a
ab
abc
abcd
b
bc
bcd
c
cd
d
我知道我可以通过这种方式获得仅“a”的可能性:
var numCombinations = 0;
var comboString = '';
var outcome = [];
for(var i = 0; i < someStr.length; i++){
comboString += someStr[i];
outcome[i] = comboString;
numCombinations += i; //# of combinations from above
}
但是我将如何继续使用这些变量来处理剩下的可能性呢?我曾想过一次又一次地创建嵌套的 for 循环,但这最终会导致硬编码的(n)th长度。是否有任何方法可以创建它并将所有可能性存储到第(n)个长度?
最佳答案
希望这有帮助。
function getComboStringListFromIdx(arr, idx){
var result = [];
var comboString = '';
for(var i=idx; i<arr.length; i++){
comboString += arr[i];
result.push(comboString);
}
return result;
}
var someStr = ['a','b','c','d'];
var outCome = [];
for(var i = 0; i<someStr.length; i++){
outCome = outCome.concat(getComboStringListFromIdx(someStr, i));
}
关于javascript - 无需硬编码即可创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45910940/