Javascript 字符串置换函数工作不正常
首先,很抱歉我之前多次被问到一个问题,但我必须说,我确实阅读了有关字符串排列的相关问题,我无法找出下面代码的实际问题。我想返回字符串的组合。请帮我找出错误!PS:我刚刚开始学习javascriptJavascript 字符串置换函数工作不正常,javascript,permutation,Javascript,Permutation,首先,很抱歉我之前多次被问到一个问题,但我必须说,我确实阅读了有关字符串排列的相关问题,我无法找出下面代码的实际问题。我想返回字符串的组合。请帮我找出错误!PS:我刚刚开始学习javascript var结果=[]; 函数doPerm(前缀、后缀、结果){ 如果(后缀.length==0) 结果推送(前缀); 否则{ 对于(i=0;i
var结果=[];
函数doPerm(前缀、后缀、结果){
如果(后缀.length==0)
结果推送(前缀);
否则{
对于(i=0;i console.log(permolone('aab'))代码>这有点像是在一张纸的背面思考
for(i;i<string.length;i++) {
var s = string.slice(i,i+1);
var c = string.charAt(i);
var q = s.split("");
for(b=0;b<q.length;b++) {
var newArray = q.slice();
newArray.splice(b,0,c);
result.push(newArray.join());
}
}
for(i;i您的逻辑是正确的实际上,您刚刚在for循环中声明了i
而没有var
,这使其成为全局性的,并给您带来了错误。一旦得到纠正,它似乎就起作用了:
var结果=[];
函数doPerm(前缀、后缀、结果){
如果(后缀.length==0)
结果推送(前缀);
否则{
对于(变量i=0;i log(permolone('aab'));
因此您希望重新运行aab的所有组合,例如aab、aba、baaetc@RichardHousham是的!完全正确!我会检查我的答案!它不起作用。它会为字符串“aab”生成a、a、a、b、b的结果。好了,有一些重复项,但由于在问题中没有说清楚,我感到很抱歉。我所期望的是输出:[aab,aab,baa,baa,aba,aba]作为输入“aab”的结果!(字符串“aab”的所有可能组合)。不过感谢您的即时响应!是的,这就是您得到的结果,您可以将其包装在函数中,但代码是相同的
<script>
var string = "aab";
var result = [];
for(i=0;i<string.length;i++) {
var c = string.charAt(i);
var q = string.split("");
q.splice(i,1);
console.log("first");
console.log(q);
console.log(c);
for(b=0;b<q.length;b++) {
var newArray = q.slice();
newArray.splice(b,0,c);
result.push(newArray.join());
}
}
console.log(result);
</script>