如何使用async.js映射数组
How to map an array with async.js?
我想迭代对象列表,并获得一个数组作为传递条件的项的结果。像这样:
var list = [{foo:"bar",id:0},{foo:"baz",id:1},{foo:"bar",id:2}];
async.map(list, function(item, cb) {
if (item.foo === "bar")
cb(null, item.id);
else
cb(); // do nothing
}, function(err, ids) {
console.log(ids);
});
如果条件没有通过,我不想要任何错误回调。只有包含元素id的数组
你不需要map,你需要filter:
var list = [{foo:"bar",id:0},{foo:"baz",id:1},{foo:"bar",id:2}];
async.filter(list, function(item, cb) {
if (item.foo === "bar")
cb(true); // include
else
cb(false); // do not include
}, function(err, items) {
console.log(items);
});
,然而,给你未改变(但过滤)的项目,如果你想映射它们(从完整的项目切换到只有id),你会在最后的回调中这样做。如果您真的想在一个步骤中完成这两个操作,我建议使用每个操作并手动构造数组,如果需要保持顺序,请使用eachSeries。
相关文章:
- 如何在映射数组中添加换行符
- 无法通过数组映射绑定
- 映射数组ES6时考虑空值
- 映射数组数组
- 在node.js或JavaScript中映射数组的干净方法
- 在angularjs中从逗号分隔的字符串列表中分割和映射数组
- Javascript映射数组循环
- GSON数组到json,但已映射数组
- 映射数组到对象的深度基于单独的对象
- Jquery映射数组键和值
- 映射数组的对象到映射分组的对象键js不可变
- 映射数组(列表),并添加一个属性
- 如何使用async.js映射数组
- 有可能只映射数组的一部分吗?(Array.map())
- 击倒映射数组与不同类型的视图模型
- 如何将哈希映射数组插入Redis?(Node.js)
- 映射数组中的属性,并在JavaScriptes6中连接一个字符串
- Javascript映射数组最后一项
- 从web方法映射数组值
- Javascript映射数组'fromCharCode'(字符)