, ben her tekrarında aynı sonucu dizisini kullanabilirsiniz:Özyinelemeli işlevde bir dönüş değerini nasıl paylaşabilirim? Düzenli fonksiyonunda
_.unique = function(array) {
var result = [];
for (var i = 0; i < array.length; i++) {
if (result.indexOf(array[i]) < 0) {
result.push(array[i]);
}
}
return result;
};
nasıl aynı şeyi (ve benim sonuç diziye itmeye devam) bir özyinelemeli fonksiyonu ile çalışırken? Bu kullanma
_.unique = function(array) {
var result = [];
if (array.length === 0) {
return result;
} else {
if (result.indexOf(array[0]) < 0) {
result.push(array[0]);
}
return _.unique(array.slice(1));
}
return result;
};
, yanlış çıkışları alıyorum. Bunu iç yardımcı işlevini kullanarak yapabilirim, ama yapmamayı tercih ederim.
Eğer recursions arasında 'result' paylaşmak istiyorsanız, sahip olduğunuz fonksiyonu ile geçmek veya küresel beyan etmek ya:
Bu
bir çalışma kod örneğidir. – ippiMuhtemelen tail recursion – blade