PowerShell数组成员统计:相同t值下d字段出现次数统计及JSON输出
PowerShell 实现分组统计追加字段并导出JSON
实现步骤
- 首先构建分组计数映射表,以
t值+d值作为唯一键统计出现次数 - 遍历原数组,为每个元素追加
Number字段存储对应计数 - 转换为JSON格式输出
完整代码
# 1. 统计相同t分组下d的出现次数 $countMap = @{} foreach ($item in $a) { # 若$item为哈希表类型,可将$item.t替换为$item['t'],$item.d替换为$item['d'] $key = "{0}#{1}" -f $item.t, $item.d $countMap[$key] = ($countMap[$key] ?? 0) + 1 } # 2. 为每个元素追加Number统计字段 $processedData = $a | ForEach-Object { $currentKey = "{0}#{1}" -f $_.t, $_.d # 追加属性,-Force参数避免重复添加报错 $_ | Add-Member -MemberType NoteProperty -Name 'Number' -Value $countMap[$currentKey] -Force $_ } # 3. 输出标准JSON数组格式 $processedData | ConvertTo-Json # 若需要输出你示例中无外层数组括号、单对象换行的格式,使用以下代码替换上一步 <# $jsonContent = $processedData | ConvertTo-Json $jsonContent -replace '^\[\r?\n', '' -replace '\r?\n\]$', '' #>
效果验证
以上代码会按照你要求的规则统计计数,输出的JSON结构和你给出的示例完全一致,Number字段值为对应t分组内相同d值的出现次数。
内容的提问来源于stack exchange,提问作者Kevin
相关产品推荐
相关产品推荐

