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


TypeScript util.isArray函数代码示例

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


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

示例1: isArray

    specModels.forEach((specM) => {
      let path = '';
      let group: SpecQueryModelGroup = rootGroup;
      for (let l = 0 ; l < queryNest.length; l++) {
        const groupBy = group.groupBy = queryNest[l].groupBy;
        group.orderGroupBy = queryNest[l].orderGroupBy;

        const key = isArray(groupBy) ?
          specShorthand(specM.specQuery, includes[l], replacers[l]) :
          groupRegistry[groupBy](specM.specQuery);

        path += '/' + key;
        if (!groupIndex[path]) { // this item already exists on the path
          groupIndex[path] = {
            name: key,
            path: path,
            items: [],
          };

          group.items.push(groupIndex[path]);
        }
        group = groupIndex[path];
      }
      group.items.push(specM);
    });
开发者ID:herrstucki,项目名称:compassql,代码行数:25,代码来源:nest.ts

示例2: getScore

 (isArray(l) ? l : [l]).forEach((left) => {
   (isArray(r) ? r : [r]).forEach((right) => {
     const lScore = getScore(left) || 0;
     const rScore = getScore(right) || 0;
     assert.isTrue(
       lScore > rScore,
       'Score for ' + stringify(left) + ' (' + lScore.toFixed(3) + ') ' +
       'should > ' + stringify(right) + ' (' + rScore.toFixed(3) + ')'
     );
   });
 });
开发者ID:herrstucki,项目名称:compassql,代码行数:11,代码来源:rule.ts

示例3: it

 it('should preserve ranking order for ' + rule.name, () => {
   const items = rule.items;
   for (let i = 1; i < items.length; i++) {
     const l = items[i-1];
     const r = items[i];
     (isArray(l) ? l : [l]).forEach((left) => {
       (isArray(r) ? r : [r]).forEach((right) => {
         const lScore = getScore(left) || 0;
         const rScore = getScore(right) || 0;
         assert.isTrue(
           lScore > rScore,
           'Score for ' + stringify(left) + ' (' + lScore.toFixed(3) + ') ' +
           'should > ' + stringify(right) + ' (' + rScore.toFixed(3) + ')'
         );
       });
     });
   }
 });
开发者ID:herrstucki,项目名称:compassql,代码行数:18,代码来源:rule.ts

示例4: toString

export function toString(groupBy: GroupBy): string {
  if (isArray(groupBy)) {
    return groupBy.map((g: string | ExtendedGroupBy) => {
      if (isExtendedGroupBy(g)) {
        if (g.replace) {
          let replaceIndex = keys(g.replace).reduce((index, valFrom) => {
          const valTo = g.replace[valFrom];
            (index[valTo] = index[valTo] || []).push(valFrom);
            return index;
          }, {});

          return g.property + '[' + keys(replaceIndex).map((valTo) => {
            const valsFrom = replaceIndex[valTo].sort();
            return valsFrom.join(',') + '=>' + valTo;
          }).join(';') + ']';
        }
        return g.property;
      }
      return g;
    }).join(',');
  } else {
    return groupBy;
  }
}
开发者ID:herrstucki,项目名称:compassql,代码行数:24,代码来源:groupby.ts

示例5: nestedMap

 return array.map((a) => {
   if (isArray(a)) {
     return nestedMap(a, f);
   }
   return f(a);
 });
开发者ID:herrstucki,项目名称:compassql,代码行数:6,代码来源:util.ts

示例6: nest

export function nest(specModels: SpecQueryModel[], queryNest: Nest[]): SpecQueryModelGroup {
  if (queryNest) {
    const rootGroup: SpecQueryModelGroup = {
      name: '',
      path: '',
      items: [],
    };
    let groupIndex: Dict<SpecQueryModelGroup> = {};

    // global `includes` and `replaces` will get augmented by each level's groupBy.
    // Upper level's `groupBy` will get cascaded to lower-level groupBy.
    // `replace` can be overriden in a lower-level to support different grouping.
    let includes: Array<PropIndex<boolean>> = [];
    let replaces: Array<PropIndex<Dict<string>>> = [];
    let replacers: Array<PropIndex<Replacer>> = [];

    for (let l = 0 ; l < queryNest.length; l++) {
      includes.push(l > 0 ? includes[l-1].duplicate() : new PropIndex<boolean>());
      replaces.push(l > 0 ? replaces[l-1].duplicate() : new PropIndex<Dict<string>>());

      const groupBy = queryNest[l].groupBy;
      if (isArray(groupBy)) {
        // If group is array, it's an array of extended group by that need to be parsed
        let parsedGroupBy = parseGroupBy(groupBy, includes[l], replaces[l]);
        replacers.push(parsedGroupBy.replacer);
      }
    }

    // With includes and replacers, now we can construct the nesting tree

    specModels.forEach((specM) => {
      let path = '';
      let group: SpecQueryModelGroup = rootGroup;
      for (let l = 0 ; l < queryNest.length; l++) {
        const groupBy = group.groupBy = queryNest[l].groupBy;
        group.orderGroupBy = queryNest[l].orderGroupBy;

        const key = isArray(groupBy) ?
          specShorthand(specM.specQuery, includes[l], replacers[l]) :
          groupRegistry[groupBy](specM.specQuery);

        path += '/' + key;
        if (!groupIndex[path]) { // this item already exists on the path
          groupIndex[path] = {
            name: key,
            path: path,
            items: [],
          };

          group.items.push(groupIndex[path]);
        }
        group = groupIndex[path];
      }
      group.items.push(specM);
    });
    return rootGroup;
  } else {
    // no nesting, just return a flat group
    return {
      name: '',
      path: '',
      items: specModels,
    };
  }
}
开发者ID:herrstucki,项目名称:compassql,代码行数:65,代码来源:nest.ts


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