2016-05-18 31 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吗? –