2013-11-25 101 views
0

我有一些functions,它返回array。這些functions將由另一個function調用。我的代碼似乎不工作,爲什麼?從javascript中返回一個數組

function foo1(){ 
    .. 
    .. 
    var A[]; 

    return A; 
} 

function foo2(){ 
    .. 
    .. 
    var B[]; 

    return B; 
} 

function catcher(){ 

    c1=foo1(); 
    c2=foo2(); 

    var d=[]; 
    for(var i = 0; i<a.length; i++){ 
     d.push(a[i],b[i],c[i]); 
    } 

} 

任何人都可以拋出一些關於如何從另一個函數訪問一個函數。 我懷疑它沒有存儲我想要的東西(在array中)。

+0

你不應該在你的代碼syntactial錯誤,這些錯誤您發佈。無論您是因語法錯誤還是因爲其他原因而面臨問題,都會造成混淆。 – sachinjain024

+0

查看我的答案,您接受的答案不包括代碼中需要的重要部分。 –

回答

1

var A[]可能是給你一個JavaScript錯誤。與var d=[]一樣,使用var A=[]。這顯然也適用於var B[]

此外,您的循環似乎引用了您的示例代碼中不存在的變量 - abc - 是問題的這一部分嗎?

+0

nope請忽略所有這些我其實沒有犯這些錯誤..我只是舉了一個例子..! – rahul888

+0

出於興趣,我的答案中的哪一部分對你有幫助? –

0

我不認爲除了語法錯誤之外還有其他問題。檢查此小提琴上JS Bin Fiddle

function foo1() { 
    var a = [1,2,3,4,5]; 
    return a; 
} 

function foo2() { 
    var b = [6,7,8,9,10]; 
    return b; 
} 

function init() { 
    var a1 = foo1(); 
    var b1 = foo2(); 

    var d = []; 
    for (var i=0; i<a1.length; i++) { 
    d.push(a1[i], b1[i]); 
    } 

    console.log(d); 
} 

init(); 

輸出:[1,6,2,7,3,8,4,9,5,10] //按預期

讓我知道你是否需要別的東西。

+0

實際上我的代碼也工作得很好。不要爲什麼它沒有早點奏效。 – rahul888

0

這裏有一些錯誤(有些東西可能會出錯)。

首先,你需要真正的聲明數組,所以不是var A[];使用var A = [];

其次,在你for循環正在檢查的a陣列的length,這會使代碼「破發」,如果其他arrays有更多(或更少)的對象。

我寫根據您的示例代碼示例:

function foo1(){ 
    var A = ['a', 'is', 'here']; 
    return A; 
} 

function foo2(){ 
    var B = ['b', 'is', 'here']; 
    return B; 
} 

function foo3(){ 
    var C = ['c', 'is', 'here']; 
    return C; 
} 

function catcher(){ 
    var a = foo1(); 
    var b = foo2(); 
    var c = foo3(); 

    var ABC = []; 

    //Run for each array, so that it docent break: 

    for (var i = 0; i < a.length; i++) { 
     ABC.push(a[i]); 
    } 

    for (var i = 0; i < b.length; i++) { 
     ABC.push(b[i]); 
    } 

    for (var i = 0; i < c.length; i++) { 
     ABC.push(c[i]); 
    } 

    //Print out the result (to verify that it worked): 

    for(var i = 0; i<ABC.length; i++){ 
     console.log(ABC[i]); 
    } 
}