我有一个像
这样的数据集public static ModuleKey getDeployableModuleFromModulesList(List<Module> modules) {
return findEARKey(modules.stream())
.orElse(findWARKey(modules.stream()).orElse(null));
}
public static Optional<ModuleKey> findEARKey(Stream<Module> moduleStream){
return moduleStream.flatMap(e -> e.getArtifacts().stream())
.filter(e -> e.getType().equals("ear"))
.map(Artifact::getKey).findFirst();
}
public static Optional<ModuleKey> findWARKey(Stream<Module> moduleStream){
return moduleStream.flatMap(e -> e.getArtifacts().stream())
.filter(e -> e.getType().equals("war"))
.map(Artifact::getKey).findFirst();
}
同样很多,json数组中有很多行。我正在使用crossfilter来读取数据并绘制图形和数据表。数据集中的类型具有“已添加”,“已修改”和“已删除”的值。
我想创建一个像
这样的数据表添加,修改和删除的位置将保留具有特定扩展名的文件的计数。任何人都可以建议我这样做吗?
到目前为止,我已经创建了这样的维度:
Get-ChildItem -Path . -Filter *bin* –Recurse | Remove-Item -Recurse -Confirm
我得到了这样的分组输出,
{"parent":"/home","inside":"/files","filename":"type.jar",
"extension":"jar","type":"modified","archive"}
如何获取已删除和修改的单独计数?
答案 0 :(得分:0)
最简单的方法可能是减少对象而不是单个值。
常见问题解答中涵盖了这一点:How do I reduce multiple values at once? What if rows contain a single value but a different value per row?您可能只需要正确的搜索字词即可找到它。
实际上,看起来FAQ中的代码可以不受修改地为您工作:
var extensionTypeGroup = extensionType.group().reduce(
function(p, v) { // add
p[v.type] = (p[v.type] || 0) + v.value;
return p;
},
function(p, v) { // remove
p[v.type] -= v.value;
return p;
},
function() { // initial
return {};
});