2016-05-18 25 views
0

我試圖從一個函數返回一個對象數組,並將其分配給一個變量返回從功能陣列,將其賦給變量

function contactsbuilder(contacts){ 
    var contactsarray = []; 
    parent.$(contacts).each(function(i,contact){ 
     contactsarray.push(somevalues); 
     if(contacts.length == i+1){ 
      console.log("coming in here?"); 
      return contactsarray; 
     } 
    }); 
}; 

現在我試圖賦予它像

var contactsarray =contactsbuilder(customdetails.contacts); 

但是contactsarray即使在控制檯日誌生成後也始終保持未定義狀態。我試過的setTimeout,但沒有運氣

我嘗試了一個簡單的foreach沒有

function sample(){ 
var xx= ["ss","ssdfds"]; 
return xx; 
} 
var something = sample() 

現在得到的東西數組值,什麼是錯在我的情況?

+0

'parent。$(contacts)'是什麼意思? –

+0

它只是一個爲每個對象的數組$(somearray)。每個 –

回答

2

您需要返回each()回調中沒有任何影響的數組。從contactsbuilder函數沒有返回,所以將return語句移到外面。

function contactsbuilder(contacts){ 
    var contactsarray = []; 
    parent.$(contacts).each(function(i,contact){ 
     contactsarray.push(somevalues); 
     if(contacts.length == i+1){ 
      console.log("coming in here?"); 
     } 
    }); 
    return contactsarray;// return the array 
}; 
+0

謝謝,不會返回空數組,如果它有1000個值在它?或者當我想進行一些Ajax調用並返回值時? –

+0

@vignesh:例如,我不能讓你 –

+0

,如果我想在$()。每個內部做一些ajax調用,不會在ajax調用返回某個值之前返回contactsarray嗎? –