2017-07-22 2 views
1

Also Jungs, ich versuche, eine Funktion, die eine Zufallszahl (die ich brauche diesen Code ausschließlich auszuführenden) eine identische Zahl für zwei verschiedene Funktionen zu erzeugen. Im Grunde werde ich eine Funktion aufrufen, die eine Zufallszahl zurückgibt, aber wenn ich diese Funktion erneut aufrufen, brauche ich dieselbe Nummer wie in der vorherigen Funktion (ich bin nicht sehr gut in Javascript.). Ich habe diese Codes, aber natürlich ist es erzeugt eine andere Nummer in jeder Funktion:Wie kann ich eine Radom-Nummer zweimal generieren?

function gen() { 
    return Math.floor(Math.random() * 21) + 40; 
} 

function chan() { 
    var rand = gen(); 
} 

function sell() { 
    var rand = gen(); 
} 
+0

Make 'rand' eine globale Variable und zuweisen, um sie in' chan' und verwenden Sie es (ohne es zu zuweisen) in 'sell'. –

Antwort

-1

speichern Sie einfach die Zufallszahl, damit Sie sie wiederverwenden können.

var rand; 
function gen() { 
return Math.floor(Math.random() * 21) + 40; 
} 

function chan() { 
rand = gen(); 
} 

chan(); 
console.log(rand); 
+0

warum down vote? OP sagte, er sei nicht gut in Javascript. Manchmal können Dinge mit einem anderen Ansatz vereinfacht werden. –

3

Sie müssen Ihre Logik ändern, um zu bekommen, was Sie wollen. Es vereitelt den Zweck der Rand-Funktion, um zu versuchen, es zweimal den gleichen Wert zurückzugeben. Holen Sie stattdessen die Variable und übergeben Sie sie an die Funktionen, die Sie benötigen. Beispiel:

function gen() { 
    return Math.floor(Math.random() * 21) + 40; 
} 

function chan(randomNumber) { 
//logic goes here 
} 

function sell(randomNumber) { 
    //logic goes here 
} 

function app() { 
    var randomNumber = gen(); 
    chan(randomNumber); 
    sell(randomNumber); 
} 
+0

Vielen Dank, für Ihre sofortige Antwort und Hilfe :) –

0

var rand; 
 
function gen() { 
 
    return Math.floor(Math.random() * 21) + 40; 
 
} 
 

 
function chan() { 
 
    rand = gen(); 
 
    return rand; 
 
} 
 

 
function sell() { 
 
    return rand; 
 
} 
 

 
console.log(chan()); 
 
console.log(sell());

Grundsätzlich erstellen neue Zufallszahl jedes Mal chan genannt wird, und zurück, dass Zufallszahl jedes Mal verkaufen genannt wird.

0

Grundsätzlich werde ich eine Funktion aufzurufen, die eine Zufallszahl zurückgibt, aber wenn ich wieder diese Funktion aufrufen, muss ich es die gleiche Anzahl wie in der vorherigen Funktion

Sie können sein Speichern Sie den aktuellen Wert Math.floor(Math.random() * 21) + 40 als eine Eigenschaft der Funktion, wenn die Eigenschaft nicht definiert ist, geben Sie den Eigenschaftswert zurück, speichern Sie den Eigenschaftswert als lokale Variable in der Funktion, andernfalls setzen Sie die Funktionseigenschaft auf undefined und geben Sie die lokale Variable

zurück

function gen() { 
 
    if (!this.n) { 
 
    this.n = Math.floor(Math.random() * 21) + 40; 
 
    return this.n; 
 
    } 
 
    if (this.n) { 
 
    const curr = this.n; 
 
    this.n = void 0; 
 
    return curr 
 
    } 
 
} 
 

 
for (let i = 0; i < 10; i++) { 
 
    console.log(gen()) 
 
}

Verwandte Themen