2016-11-26 196 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 /字符串/分 –

相關問題