2014-07-10 73 views
0

我在聲明一個函數,它可以在數組內生成一系列有序值對,例如可以繪製在圖上。我有兩個變量:循環函數和數組:javascript

var xAxis = 1; 
var yFunction = 4*(xAxis^xAxis) + 12(xAxis) + 20; 

所以,基本上這將使用海軍報的JQuery繪製在圖上一元二次方程,但我希望能夠使用,比方說,一個while循環遞增xAxis變量每次迭代一次,然後在該迭代中計算xAxis的值yFunction。我不知道如何保持yFunctionxAxis的現值掛鉤。

另外,函數具有以產生用於每次迭代的xAxis每個值和yFunction,然後將這些值存儲到格式的數組:

var graphArray = [[1, 2], [2, 4], [3, 6], [4, 8]]; 

從那裏,我可以繪製曲線圖。

如果有人有任何想法我會如何去做這件事,我會很感激。我瀏覽了各種表格,並且看不到明顯的解決方案。

回答

2

你的出發點是爲了定義yFunction作爲一個函數:

var yFunction = function(x) { 
    return 4 * Math.pow(x, x) + 12 * x + 20; 
} 
// assuming that by x^x you meant X to the power of X. 

然後你的循環可能是這樣的:

var graphArray = []; 

for(var x = 1; x <= 4; x++) { 
    graphArray.push([x, yFunction(x)]); 
} 
+0

太棒了,非常感謝 – user3826598

0
function y(x) { //handle y as function as learned in school 
    return 4 * (Math.pow(x,x)) + 12 * x + 20; 
} 

var objValueTable = {}, //object to store data into 
    targetValue = 10; //value to iterate to 
for(var x = 1; x != targetValue + 1; x++) { 
    objValueTable[x] = y(x); //store value of y at point x in object 
} 

應該很好地工作。請參閱example via jsfiddle。 targetValue是函數應該執行的迭代次數。

+0

我可以問爲什麼for循環條件具有'!= targetValue + 1'作爲條件嗎? – user3826598

+0

第二條語句(x!= targetValue + 1)用於在循環結束時返回false。所以,如果x達到10,循環會停止而不執行y(10),因爲x!= 10是假的。這就是爲什麼我要將startingValue添加到targetValue。在大多數情況下,你會從零開始(for(var i = 0; ...))。但是我!= targetValue + 0沒有意義。 – SVSchmidt