我正在尝试列出所有三个字母的排列,这是我的代码 -
window.permute = function(){
var alphabet = "abcdefghijklmnopqrstuvwxyz";
var searchTerm ="aaa";
var position = 2;
changeString(searchTerm, position);
}
window.changeString = function(searchTerm, position){
if (position <0){
alert(newString);
return;
}
var alphabet = "abcdefghijklmnopqrstuvwxyz"
for (j=0; j < 26;j++){
var newString = searchTerm.substr(0, position) + alphabet[j] + searchTerm.substr(position+1);
var newPosition = position -1;
changeString(newString,newPosition);
}
return;
}
它不起作用,我不确定为什么 - 谁能帮忙?
最佳答案
var permutate = (function() {
var results = [];
function doPermute(input, output, used, size, level) {
if (size == level) {
var word = output.join('');
results.push(word);
return;
}
level++;
for (var i = 0; i < input.length; i++) {
if (used[i]) {
continue;
}
used[i] = true;
output.push(input[i]);
doPermute(input, output, used, size, level);
used[i] = false;
output.pop();
}
}
return {
getPermutations: function(input, size) {
var chars = input.split('');
var output = [];
var used = new Array(chars.length);
doPermute(chars, output, used, size, 0);
return results;
}
}
})();
欲了解更多信息,请访问 http://jinwolf.tumblr.com/post/26476479113/draw-something-cheat 有关工作示例,请查看此 jsfiddle http://jsfiddle.net/jinwolf/Ek4N5/31/
关于javascript - 列表排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7234319/