2014-10-27 3 views
2

Я хочу, чтобы все соседние комбинации слов в строке, как строки get all combinations , и я хочу, чтобы получитьКак получить все комбинации слов в строке

get all combinations 
all combinations 
get all 
all 
get 
combinations 

и я пишу следующий код

var string = 'get all combinations'; 
 
var result = getKeywordsList(string); 
 
document.write(result); 
 

 
function getKeywordsList(text) { 
 
    var wordList = text.split(' '); 
 
    var keywordsList = []; 
 
    while (wordList.length > 0) { 
 
     keywordsList = keywordsList.concat(genKeyWords(wordList)); 
 
     wordList.shift(); 
 
    } 
 
    return keywordsList; 
 
} 
 

 
function genKeyWords(wordsList) { 
 
    var res = [wordsList.join(' ')]; 
 
    if (wordsList.length > 1) { 
 
     return res.concat(genKeyWords(wordsList.slice(0, -1))); 
 
    } else { 
 
     return res; 
 
    } 
 
}

можно улучшить или упростить эту задачу (получить все neighb комбинация слов) стр. простите за мой английский

+2

Если код работает, как задумано, то лучше спросил на [codereview.se]. – usr2564301

+0

@Sergey - будьте осторожны с рекурсивными функциями, они ограничены в зависимости от используемого вами браузера. На самом деле, было бы лучше просто отправить серверный сервер списка, чтобы обрабатывать его с помощью PhP? – rottenoats

+0

@Grimbode спасибо, я буду осторожен с ним –

ответ

4

привет Может быть, это поможет вам

var string = 'get all combinations'  
 
    var sArray = string.split(' '); 
 
    var n = sArray .length; 
 
    for (var i = 0; i < n; i++) { 
 
     for (var j = 0; j <= i; j++) { 
 
     document.write(sArray .slice(j, n - i + j).join(' ') + ', '); 
 
     } 
 
    }

Смежные вопросы