2016-05-22 14 views
0

Dies ist mein Code, mit einigen Fehlern (i später erklären werde)Wert, der nach dem Zuweisen eines Werts (kindof) null zurückgibt?

<html><head><title>RandMath</title></head><body> 
<p>RandomMath</p> 
<p>Click the button below to generate a random equation.</p> 

<button onclick="exampleSite();">Generate</button> 
<button id="isHard" onclick="harder();">Change Hardness</button> 
<button onclick="setTimeout(function() {window.location = 'http://xtremeplayzcode.github.io/randmath/source.js';}, 100);">See the code</button> 
<p id="generate"></p> 

<script> 
function exampleSite() { 
    change('generate', true); 
} 
var equations = []; 
var isHarder; 
function addEquation(equation) { 
    this.fromArray = function(array) { 
     equations.concat(equations, array); 
    } 
    equations.push(equation); 
} 
function getRandomizer(bottom, top) { 
    return Math.floor(Math.random() * (1 + top - bottom)) + bottom; 
} 
function getRandomNumber(isHard) { 
    var results = ""; 
    if (isHard === true) { 
     for (var i = 0; i < 1; i++) { 
      results += getRandomizer(1, 9); 
     } 
    } else { 
     for (var i_ = 0; i_ < 2; i_++) { 
      results += getRandomizer(1, 9) 
     } 
    } 
    return results; 
} 
function useExampleEquations() { 
    var num_7 = getRandomNumber(isHarder), 
     num_6 = getRandomNumber(isHarder), 
     num_5 = getRandomNumber(isHarder), 
     num_4 = getRandomNumber(isHarder), 
     num_3 = getRandomNumber(isHarder), 
     num_2 = getRandomNumber(isHarder), 
     num_1 = getRandomNumber(isHarder); 

    var equation1 = num_1+" x "+num_2+" + {"+num_3+" x [("+num_4+" x "+num_5+") - "+num_6+"] + "+num_7+"} = x", 
     equation2 = num_1+" x "+num_2+" = y", 
     equation3 = num_1+"s x "+num_2+" = z, s = "+num_3, 
     equation4 = num_1+" + {" +num_2+ " x [" +num_3+" + ("+num_4+" x "+num_5+") + "+num_6+"] + "+num_7+"} = x", 
     equation5 = num_1+"e + "+num_2+"l x "+num_3+" + "+num_4+"a, e = "+num_5+", l = "+num_6+", a = "+ num_7, 
     equation6 = "["+num_1+" x "+num_2+ "z] + {"+num_3+" - "+num_4+"} + ("+num_5+" + "+num_6+") = e, z = "+ num_7, 
     equation7 = "p x "+num_1+" x "+num_2+" - "+num_3+" + "+num_4+" = e, p = "+num_5; 

    var exampleEquations = [ 
     equation1, 
     equation2, 
     equation3, 
     equation4, 
     equation5, 
     equation6, 
     equation7 
    ] 

    addEquation.fromArray(exampleEquations); 
} 
function getRandomEquation() { 
    var change = 0; 
    change = getRandomizer(0, equations.length - 1); 
    return equations[change]; 
} 
function change(element, useExampleEquations_) { 
    if (useExampleEquations_) { 
     useExampleEquations(); 
     document.getElementById(element).innerHTML = getRandomEquation(); 
    } else { 
     document.getElementById(element).innerHTML = getRandomEquation(); 
    } 
} 
function harder() { 
    if (isHarder) { 
      isHarder = false; 
    } else if (!isHarder) { 
      isHarder = true; 
    } else { 
     isHarder = true; 
    } 
} 
</script> 



</body></html> 

Und wenn ich generieren klicken, es gibt nichts zurück. Irgendeine Hilfe? (PS eine Arbeits Demo ist hier oben: here falls Sie es sehen wollen, bevor ich es ruiniert oder sehen, wie ich es herausstellen wollen: p)

+0

Klingt wie Zeit um zu lernen, wie man grundlegendes JavaScript-Debugging mit den in Ihrem Browser eingebauten Entwicklungswerkzeugen durchführt. Nur zu sagen "* hier; s ein Haufen Code .... aber es funktioniert nicht" * ist nicht wirklich spezifisch genug eine Frage. Es gibt viele Tutorials zum Debuggen sowie Handbücher für Browser-Dev-Tools, die Sie mit – charlietfl

+0

starten können. Auch sollte angeben, welcher Teil des Codes funktioniert und welcher Teil nicht .. und alles entfernen, was nicht relevant ist – charlietfl

+0

Die ganze Sache dosen't work – Xtreme

Antwort

0

Das Problem ist mit addEquation und wie Sie (don‘ t) rufe es an.

function addEquation(equation) { 
    this.fromArray = function(array) { 
     equations.concat(equations, array); 
    } 
    equations.push(equation); 
} 

Wenn addEquation jemals genannt wurden (es ist nicht), das Objekt, um es auf hieß würde eine fromArray Eigenschaft erhalten. Aber Funktion addEquation nicht, als solche keine Eigenschaft mit dem Namen fromArray, so dass, wenn dieser Code in useExampleEquations() ausgeführt:

addEquation.fromArray(exampleEquations); 

Sie einen Fehler auf der Konsole. Öffnen Sie die Javascript-Konsole und klicken Sie auf die generate Taste, und Sie werden wahrscheinlich ein Fehler ähnlich sehen: (. Dies ist der Fehler von NodeJS; Browserfehlermeldung kann unterschiedlich sein)

TypeError: addEquation.fromArray is not a function 

+0

Ah, danke. Ich werde es versuchen. – Xtreme

+0

Es funktioniert, wenn ich das Kind fromArray außerhalb der Funktion, aber es gibt undefined zurück – Xtreme

+0

@Xtreme Es gibt keine 'return' Anweisung in beiden Funktionen. –

Verwandte Themen