で置換文字列の配列を返すことができない私のjsである: -再帰的解法:文字列置換。ここではjavascriptの
function recPerm(rest, soFar) {
var next;
var remaining;
var output=[];
if (rest === '') {
console.log(soFar); //outputting strings..and this works
output.push(soFar);
} else {
for (var i = 0; i < rest.length; i++) {
remaining = rest.substr(0,i) + rest.substr(i+1,rest.length-1);
next = soFar + rest[i];
recPerm(remaining, next);
}
}
return output; //returns an empty array in the end
}
var out=recPerm('abc','');
console.log(out); //prints empty array
再帰的に、私は、入力文字列の順列を印刷しようとしています。入力文字列と空文字列を渡しています。この空文字列は、再帰的に残りの文字列とこの文字列の次の個々の文字を考慮して呼び出すことができます。ベースケースの内部では、個々の文字列をログすることができます。しかし、何とかそれは私の配列の最後に向かって保存していません。私のJSに欠けているものがありますか?
あなたは 'output.push(someValueの)ような何かをしなければならない;' – Hitmands
各呼び出し 'recPerm'は、あなたがして再帰呼び出しに無視している新しい配列を作成して返しているに。返された配列の内容を呼び出し元のスコープ内の配列に追加する必要があります。 –
String.prototype.substr()は、第2パラメータとしてのサブ文字列の長さを指定します。私はあなたがそれに指数を渡すと間違っているかもしれないと思います。 – Redu