code: function filter(results, data, ignored) {
      if (!data.length) return results;
      //这里是为了缓存match匹配函数
      var preMatchesCache = matchesCache;
      matchesCache = createMatches(data);
      for (var i = results.length; i--;) {
        if (!matchData(results[i], data, ignored)) {
          results.splice(i, 1);
        }
      }
      // Fixed: 因为一次filter可能会有字filter调用，比如matches、not、include
      matchesCache = preMatchesCache; // warning :以后写全局变量一定当心
      return results;
    }
docs: 过滤主函数filter ----------------------------------- 自底向上过滤非匹配节点