2016-11-26 88 views
0

我把下面的代码放在一个外部的.js文件中,但我试图调用这个函数,它返回undefined。 Plz帮助如何调用数组的函数?

function getTransactions(accno) { 
    var from, to, selected=new Array(); 
    var transactionPool=new Array(); 
    transactionPool[0]=new createTrans("1/20/2015", "PPS Payment", "dr", 1300.5); 
    transactionPool[1]=new createTrans("2/27/2015", "Online", "cr", 300.5); 
    transactionPool[2]=new createTrans("1/11/2016", "ATM", "dr", 9300.0); 
    transactionPool[3]=new createTrans("2/20/2016", "Counter", "dr", 300.5); 
    transactionPool[4]=new createTrans("3/15/2016", "Online", "dr", 2200); 
    transactionPool[5]=new createTrans("4/23/2016", "PPS Payment", "dr", 4300.99); 
    transactionPool[6]=new createTrans("5/2/2016", "Counter", "cr", 7300.5); 
    transactionPool[7]=new createTrans("6/5/2016", "Online", "dr", 500.5); 
    transactionPool[8]=new createTrans("7/20/2016", "ATM", "cr", 800.3); 
    transactionPool[9]=new createTrans("11/5/2016", "PPS Payment", "cr", 300.5);  
    from=Math.floor(Math.random()*10); 
    to=Math.floor(Math.random()*10+1); 
    for (i=0; i<to; i++) { 
     selected[i]=transactionPool[from]; 
     from=(from+1)%9; 
    } 
    return selected; 
} 


<script>window.onload = function() { 
document.getElementById("account"). 
innerHTML = localStorage.accDetails; 
var accDetail=getTransactions(); 
document.getElementById("test").innerHTML = transactionPool[0]; 
}</script> 

我在脚本中写这个来调用函数,但不起作用。我的代码有什么问题?谢谢。

回答

-1

小建议:不要使用“new Array()”,而要使用“[]”来声明数组!

var list = [ 
 
    function(){ // 0 
 
    return 'cat'; 
 
    }, 
 
    function(){ // 1 
 
    return true 
 
    }, 
 
    function(){ // 2 
 
    return false; 
 
    }, 
 
    function(){ // 3 
 
    return 'food'; 
 
    } 
 
]; 
 

 
// RUN!! 
 
alert(list[2]());

+0

恩,功能不能改变,因为这是由讲师写的,我们必须调用这个函数 – tweaktweak

+0

来调用函数只需添加“()”。例如,“list [3]()” – Pinguto

+0

返回测试函数数组可以返回一个数组或对象。例如: 在您的函数** return {sel:selected,transPool:transactionPool}; ** 选定值后** accDetail.sel **或获取所有函数** accDetail.transPool ** – Pinguto

0

好,一,你的脚本标签中有没有名为transactionPool变量,因为在返回数组引用名为accDetail而不是transactionPool,并transactionPool是(正确)不是全局变量。

+0

所以代码应该是'document.getElementById(“text”)。 innerHTML = accDetail.transactionPool [0];'? – tweaktweak

+0

或调用此函数并返回所需值的正确方法是什么? – tweaktweak

+0

不,如果数组的本地引用是accDetail,那么第一个元素是accDetail [0]。 – PMV