2012-08-06 52 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)就足够了。

相关问题