javascript - 无需硬编码即可创建数组

标签 javascript arrays

我正在尝试创建一个字符串数组,并根据数组字符串的长度产生可能性。例如:

 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/

相关文章:

javascript - 如何防止子 Controller 中 div 上的 ng-click 事件触发根中的 ng-click 事件?

java - String[] 或 ArrayList 更适合作为 HashMap 中的 Key?

javascript - 输出好友姓名而不是 ID

javascript - 在移动设备上显示图像的标题

javascript - 如何淡入/淡出带有子菜单的 jQuery 菜单?

javascript - 如何在angular js中分组和rowspan

javascript - javascript 中的关联数组

arrays - Imshow 和 imwrite 在 matlab 中显示空白图像

ios - 如何在did select row方法collectionview中播放视频

javascript - 在样式元素上使用 title 属性时出现问题