2012-08-06 55 views
0

我有一個包含150個JavaScript函數(這些函數返回財務指標)的JavaScript數組。當我加載我的頁面時,我有這個數組。我想知道是否可以在該頁面上使用這些加載的函數?如何使用javascript或jquery運行放置在數組中的函數

我已經轉換我的陣列到柱和下圖展示瞭如何看起來像在報警模式:

arry alert mode http://bsl.site40.net/pic/8cdf49ea54ee.jpg

在上述畫面中的(faunction的a,b,c)是在我的功能取並且有150個函數(字符串{「itemCode」:___},每當我添加一個函數時都會被重新計算)。我認爲應該有一些字符串替換,然後在某個頁面上插入函數。嗯,我不知道。你可以幫我嗎? 我還有一個問題:javascript數組可能會很長(例如20000個字符)嗎?

編輯:我的數組有完整的函數代碼。在這張圖片中,我只顯示他們的名字,以便可以看到圖片

+0

你的數組是否包含函數的「名稱」,或者是聲明函數的實際代碼? – Gavin 2012-08-06 12:01:03

+1

您是否用「功能a」代替了實際功能?如果是這樣,並且這些項是函數對象'r = yourArray [0] .ItemCode();'? – 2012-08-06 12:01:37

+0

@gavin我的數組具有完整的功能。在那張照片中,我只顯示了他們的名字,以便可以看到照片。 – 2012-08-06 12:03:17

回答

2

我建議您使用json對象而不是數組,它會更容易查找。 如果您繼續使用數組,您將不得不遍歷數組以便找到正確的函數名/函數。

如果你的JSON對象認爲,在全球範圍內聲明的函數的名稱,你可以打電話給他們這樣

var functionName = "myFunc"; 
window[functionName](); 

但你可能不應該在全球範圍申報您的功能,但它們存儲在某種形式的命名空間。

如果你的JSON對象包含實際的功能(我會推薦這),您可以用

var functionName = "myFunc"; 
myObject[functionName](); 

如果你的對象包含函數代碼字符串調用它,你就必須把它EVAL到執行它。你的函數需要用括號括起來,我不會建議這種方法! 你甚至可以用某種jsonp動態加載函數。

var functionName = "myFunc"; 
var myFunc = eval('(' + myObject[functionName] + ')'); 
myFunc(); 

陣列最多可包含4,294,967,296元,但你會抹殺你的表現,你達到那個,我不太肯定JSON對象強硬很久以前。

0

如果函數存儲爲字符串,則可以使用函數eval(string)。不過這不推薦。如果它們使用圓括號存儲爲對象,那麼(functionName)就足夠了。

相關問題