JavaScript在async.map期间删除项目

我使用async.map迭代数组并执行每个项目上的一些asynchronous函数。 在某些情况下,我需要从原始数组中删除项目,我想知道这是否可能,我试着用两个空参数调用callback,

cb(null,null) 

但是这不起作用。 我尝试了一下,但在这个特定的情况下找不到任何东西。 有没有办法实现这一点? 谢谢。

编辑:短代码片段

 async.map(page['canvasData']['objects'], function (elem, cb) { if (elem['type'] == "picturebox") { //async opeartions cb(null, elem); } else cb(null, null); } 

如果确定是否删除一个元素可以同步完成(如你的例子),你可以在调用async.map之前使用常规的Array#filter

 var filteredObjects = page.canvasData.objects.filter(function () { return elem.type === "picturebox"; }); // filteredObjects is a copy of page.canvasData.objects, with // non-picturebox elements removed async.map(filteredObjects, function (elem, cb) { // async operations... // more async operations... // more async operations... cb(null, elem); }, function (err, result) { if (err) { ... } else { console.log("Result: " + result); } });