2016-11-26 154 views
2

我有以下函数从JavaScript中的字符串中获取所有子字符串。我知道这是不正确的,但我觉得我正在以正确的方式去做。任何建议都会很棒。在JavaScript中获取字符串的所有子字符串

var theString  = 'somerandomword', 
    allSubstrings = []; 

getAllSubstrings(theString); 

function getAllSubstrings(str) { 

    var start = 1; 

    for (var i = 0; i < str.length; i++ ) { 

    allSubstrings.push(str.substring(start,i)); 

    } 

} 

console.log(allSubstrings) 

编辑:道歉,如果我的问题不清楚。子字符串我的意思是字符串中的所有字母组合(不必是实际的字)因此,如果字符串是'abc',你可以有[a,ab,abc,b,ba,bac等...]谢谢为所有的答复。

+3

你是什么意思的“所有”的子字符串? –

+0

您期望输出什么? – Aruna

+0

这应该是有用的 http://stackoverflow.com/questions/4547609/how-do-you-get-a-string-to-a-character-array-in-javascript –

回答

7

您需要两个子字符串的嵌套循环。

function getAllSubstrings(str) { 
 
    var i, j, result = []; 
 

 
    for (i = 0; i < str.length; i++) { 
 
     for (j = i + 1; j < str.length + 1; j++) { 
 
      result.push(str.slice(i, j)); 
 
     } 
 
    } 
 
    return result; 
 
} 
 

 
var theString = 'somerandomword'; 
 
console.log(getAllSubstrings(theString));
.as-console-wrapper { max-height: 100% !important; top: 0; }

+0

非常感谢。 – user2085143

+0

这个解决方案只给出了字符串的一部分,但并没有对它进行排列。 –

-3
var theString = 'somerandomword', 
var allSubstrings = theString.Split(''); 

allSubstrings == >> [ 'S', '0', 'M', 'E', 'R', 'A', 'N', 'd','o','m','w','o','r','d']

+1

http://stackoverflow.com/questions/4547609/how-do-you-get-a-string-to-a-character-array-in-javascript –

+1

看到这个:https://developer.mozilla.org/ EN-US /文档/网络/的JavaScript /参考/ Global_Objects /字符串/分 –

相关问题