当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript fastbitset.add函数代码示例

本文整理汇总了TypeScript中fastbitset.add函数的典型用法代码示例。如果您正苦于以下问题:TypeScript add函数的具体用法?TypeScript add怎么用?TypeScript add使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了add函数的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1:

 .forEach(index => {
   const from = this.courseOffsets[index];
   const to = this.courseOffsets[index + 1];
   for (let i = from; i < to; i++) {
     result.add(i);
   }
 });
开发者ID:kevmo314,项目名称:canigraduate.uchicago.edu,代码行数:7,代码来源:indexes.ts

示例2: unpackTermIndex

 private unpackTermIndex(data: string): TypedFastBitSet {
   const terms = new Set<number>(unpack(data));
   const result = new TypedFastBitSet();
   let index = 0;
   for (let i = 0; i < this.courses.length; i++) {
     for (let j = 0; j < this.terms.length; j++) {
       const included = terms.has(j);
       for (let k = 0; k < this.cardinalityTable[i][j]; k++, index++) {
         if (included) {
           result.add(index);
         }
       }
     }
   }
   return result;
 }
开发者ID:kevmo314,项目名称:canigraduate.uchicago.edu,代码行数:16,代码来源:indexes.ts

示例3: search

function search(
  institution: InstitutionData,
  algolia: algoliasearch.Index,
  indexes: Indexes,
  transcript: { course: string }[],
  filter: FilterState
): Observable<SerializedMap> {
  function filterAny(values, getter) {
    return of(...values).pipe(
      map(x => getter(x)),
      reduce((a, b) => a.union(b), new TypedFastBitSet()),
      map(mask => results => results.intersection(mask))
    );
  }

  const subsetters = [];
  if (filter.query && filter.query.length > 0) {
    subsetters.push(
      defer(() =>
        algolia.search({
          query: filter.query,
          attributesToRetrieve: [],
          attributesToHighlight: [],
          allowTyposOnNumericTokens: false,
          hitsPerPage: 1000
        })
      ).pipe(
        map(results => results.hits.map(result => result.objectID)),
        // Map the list of course identifiers to the corresponding bitset.
        map(courses => indexes.getBitSetForCourses(courses)),
        // Apply the exact query match mask.
        map(mask =>
          mask.union(
            indexes.getBitSetForCourses(
              indexes
                .getCourses()
                .filter(x => x.includes(filter.query.toUpperCase()))
            )
          )
        ),
        map(mask => results => results.intersection(mask)),
        first() // Complete the observable.
      )
    );
  }

  if (!filter.full) {
    subsetters.push(
      defer(() => of(indexes.enrollment("full"))).pipe(
        map(mask => results => results.difference(mask))
      )
    );
  }

  if (!filter.taken) {
    subsetters.push(
      of(transcript.map(record => record.course)).pipe(
        map(courses => indexes.getBitSetForCourses(courses)),
        map(mask => results => results.difference(mask))
      )
    );
  }

  if (!filter.old) {
    subsetters.push(
      defer(() => of(indexes.getTerms())).pipe(
        map(terms => terms.slice(0, terms.length - 16)),
        map(terms => indexes.getBitSetForTerms(terms)),
        map(mask => results => results.difference(mask))
      )
    );
  }

  if (filter.departments.length) {
    subsetters.push(filterAny(filter.departments, x => indexes.department(x)));
  }
  if (filter.instructors.length) {
    subsetters.push(filterAny(filter.instructors, x => indexes.instructor(x)));
  }
  subsetters.push(
    filterAny(filter.periods.filter(x => x < institution.periods.length), x =>
      indexes.period(institution.periods[x].name)
    )
  );

  // This is a rather expensive filter...
  if (filter.days) {
    const it = filter.days
      .map(day => [1440 * day, 1440 * (day + 1)])
      .reduce((tree, interval) => tree.add(interval), new IntervalTree());
  }

  // Generate a full state.
  const state = new TypedFastBitSet();
  state.resize(indexes.getTotalCardinality());
  for (let i = 0; i < indexes.getTotalCardinality(); i++) {
    state.add(i);
  }

  return combineLatest(...subsetters).pipe(
//.........这里部分代码省略.........
开发者ID:kevmo314,项目名称:canigraduate.uchicago.edu,代码行数:101,代码来源:indexes-worker.ts


注:本文中的fastbitset.add函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。