var arr = [1,2,3,6];
filter
async.filter(coll, iteratee, [callback])
并行执行,对arr进行筛选。
async.filter(arr, function(item, callback) {
    log('1.1 enter: ' + item);
    setTimeout(function() {
        log('1.1 test: ' + item);
        callback(null, item>=3);
    }, 200);
}, function(results) {
    log('1.1 results: ', results);
});
// ==> results: [ 3, 4, 5 ]
filterSeries
async.filterSeries(coll, iteratee, [callback])
串行执行,对arr进行筛选。
async.filterSeries(arr, function(item, callback) {
    log('1.3 enter: ' + item);
    setTimeout(function() {
        log('1.3 handle: ' + item);
        callback(null, item>=3);
    }, 200);
}, function(results) {
    log('1.3 results: ', results);
});
// => results: [ 3, 4, 5 ]
filterLimit
async.filterLimit(coll, limit, iteratee, [callback])
reject
- async.reject(coll, iteratee, [callback])
 - async.rejectSeries(coll, iteratee, [callback])
 - async.rejectLimit(coll, limit, iteratee, [callback])
 
reject跟filter正好相反,当测试为true时,抛弃之
async.reject(arr, function(item, callback) {
    log('1.4 enter: ' + item);
    setTimeout(function() {
        log('1.4 test: ' + item);
        callback(null, item>=3);
    }, 200);
}, function(results) {
    log('1.4 results: ', results);
});
// => results: [ 1, 2 ]
async.rejectSeries(arr, function(item, callback) {
    log('1.5 enter: ' + item);
    setTimeout(function() {
        log('1.5 handle: ' + item);
        callback(null, item>=3);
    }, 200);
}, function(results) {
    log('1.5 results: ', results);
});
// => results: [ 1, 2 ]