2017-03-04 1 views
0

Warum wird myAry nicht 8 mal zurückgegeben, wenn num gleich 7 ist? myAry kommt nur einmal mit dem folgenden Code zurück.Array mit do while loop zurückgeben

function array(num) { 
    var myAry = ['my array']; 
    var i = num; 
    do { 
    i++; 
    return myAry; 
    } while (i < 15); 
} 

console.log(array(7)); 
+1

Es ist sehr schwierig zu aktualisieren, hier zu helfen, da es keine Zusammenhang oder Erklärung des Verhaltens Sie erreichen wollen. Ich bezweifle, dass das helfen wird, aber in Ihrem Code "i" und "num" sind im Wesentlichen redundant, es ist funktionell äquivalent zu 'var myAry = ['my array']; return myAry; '. Wie auch immer, ich würde die Frage mit der Sprache markieren, die Sie verwenden, und eine kurze Erklärung des gewünschten Verhaltens geben. – George

+0

Verwenden von Javascript- Ich bin auf der Suche nach dem Array die Anzahl der Male zwischen num und 15. Verwenden Sie eine Do While-Schleife. –

Antwort

0

Ich bin nicht sicher, welche Sprache Sie verwenden, aber in der Regel die return Schlüsselwort bedeutet das, was auf der rechten Seite ist, schicken Sie es bis zu, was auch immer diese Funktion aufgerufen, und von dort aus weiter. Es beendet im Wesentlichen Ihre Funktion.

0

Ihre Array-Funktion wird einmal aufgerufen, sie gibt die letzte Iteration der for-Schleife zurück. Sie müssen sich an der Konsole innerhalb der for-Schleife anmelden.

Wenn Sie die zurückgegebenen Werte woanders verwenden müssen, können Sie ein zweidimensionales Array verwenden.

function array(num) { 
    var returnAry = []; 
    var myAry = ['my array']; 
    var i = num; 
    do { 
     i++; 
     returnAry = returnAry.concat(myAry); 
    } while (i < 15); 
    return returnAry; 
} 

console.log(array(7)) 
0

Der Grund dafür ist, dass Sie return in Ihrer Schleife anrufen, so das erste Mal Ihre Schleife läuft, gibt sie ['my array'] und Schleife hat nie die Chance, mehr als einmal ausführen. Um zu erreichen, was Sie suchen, müssen Sie den Code zu diesem

function array(num) { 
    var myAry = ['my array']; 
    var result; 
    do { 
     num++; 
     // update result based on what you're trying to accomplish here 
    } while (num < 15); 
    return result; 
} 

console.log(array(7));