无法将项目从Javascript中的匿名回调函数推送到数组中

我有一个javascript问题让我完全疯了。 我有一组数据,我正在使用jQuery .each()方法迭代。 在.each()回调函数中,我正在推送数组上的数据。 这是代码。

var p = procedure_tool.all(); previousValue = -1; var proceduresArray = []; p.each(function(d, proceduresArray) { proceduresArray.push(d.procedureID); }); 

我也试过使proceduresArray全局(前面没有var),然后尝试不通过匿名函数传递它。

 var p = procedure_tool.all(); previousValue = -1; proceduresArray = []; p.each(function(d) { proceduresArray.push(d.procedureID); }) 

数据确实存在(回调内的警报显示正常)。 有任何想法吗? 我觉得这是一个范围问题,但我认为全局化数组会修复它。

谢谢

两件事情,

1-您无需将proceduresArray传递给匿名函数。 2- .each()中的匿名函数传递了2个东西。 第一个是元素的索引,第二个是元素。 即callback(indexInArray, valueOfElement) http:// http://api.jquery.com/jQuery.each/

这应该工作得很好:

 var p = procedure_tool.all(); previousValue = -1; var proceduresArray = []; p.each(function(i, d) { proceduresArray.push(d.procedureID); }); 

另一个例子:

 var p = $('div'); var pArray = []; p.each(function(i, el) { pArray.push(el); }); console.log(pArray); 

请记住,也可以在匿名函数中使用this值访问该值。

  • 基督教