本文整理汇总了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);
});
示例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) + ')'
);
});
});
示例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) + ')'
);
});
});
}
});
示例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;
}
}
示例5: nestedMap
return array.map((a) => {
if (isArray(a)) {
return nestedMap(a, f);
}
return f(a);
});
示例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,
};
}
}