首页 文章

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

提问于
浏览
2

我有一个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 回答

  • 3

    两件事情,

    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 来访问该值 .

    • 基督徒

相关问题