本文整理汇总了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);
}
});
示例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;
}
示例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(
//.........这里部分代码省略.........