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


TypeScript Sequence.cycle方法代码示例

本文整理汇总了TypeScript中spica/sequence.Sequence.cycle方法的典型用法代码示例。如果您正苦于以下问题:TypeScript Sequence.cycle方法的具体用法?TypeScript Sequence.cycle怎么用?TypeScript Sequence.cycle使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在spica/sequence.Sequence的用法示例。


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

示例1: match

 function match(pattern: string, segment: string): boolean {
   const [p = '', ...ps] = [...pattern];
   const [s = '', ...ss] = [...segment];
   assert(typeof p === 'string');
   assert(typeof s === 'string');
   switch (p) {
     case '':
       return s === '';
     case '?':
       return s !== ''
           && s !== '/'
           && match(ps.join(''), ss.join(''));
     case '*':
       return s === '/'
         ? match(ps.join(''), segment)
         : Sequence
             .zip(
               Sequence.cycle([ps.join('')]),
               Sequence.from(segment)
                 .tails()
                 .map(ss => ss.join('')))
             .filter(uncurry(match))
             .take(1)
             .extract()
             .length > 0;
     default:
       return s === p
           && match(ps.join(''), ss.join(''));
   }
 }
开发者ID:falsandtru,项目名称:pjax-api,代码行数:30,代码来源:router.ts

示例2: compare

export function compare(pattern: string, path: URL.Pathname<StandardURL>): boolean {
  assert(path[0] === '/');
  assert(!path.includes('?'));
  const regSegment = /\/|[^/]+\/?/g;
  const regTrailingSlash = /\/$/;
  assert(expand(pattern).every(pat => pat.match(regSegment)!.join('') === pat));
  return Sequence
    .zip(
      Sequence.from(expand(pattern)),
      Sequence.cycle([path]))
    .map(([pattern, path]) =>
      [
        pattern.match(regSegment) || [],
        pattern.match(regTrailingSlash)
          ? path.match(regSegment) || []
          : path.replace(regTrailingSlash, '').match(regSegment) || []
      ])
    .filter(([ps, ss]) =>
      ps.length <= ss.length &&
      Sequence
        .zip(
          Sequence.from(ps),
          Sequence.from(ss))
        .dropWhile(uncurry(match))
        .take(1)
        .extract()
        .length === 0)
    .take(1)
    .extract()
    .length > 0;
}
开发者ID:falsandtru,项目名称:pjax-api,代码行数:31,代码来源:router.ts


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