合并数组值并实现可引用分层计数的技术问询
Hey there! Let's work through this hierarchical counting task for your dataset. First, let's lay out the raw data we're working with:
const dataset = [ "L1-1_L1.0-1_L1.0.0-1", "L1-1_L1.0-2_L1.0.0-1", "L1-1_L1.0-2_L1.0.0-2", "L1-2_L1.0-1_L1.0.0-1", "L1-2_L1.0-1_L1.0.0-2", "L1-3_L1.0-1_L1.0.0-3" ];
Hierarchical Count Results
Level 1 (Top-level) Counts
- L1-1: 3 entries
- L1-2: 2 entries
- L1-3: 1 entry
Level 2 (Nested under Level 1) Counts
- Under L1-1:
- L1.0-1: 1 entry
- L1.0-2: 2 entries
- Under L1-2:
- L1.0-1: 2 entries
- Under L1-3:
- L1.0-1: 1 entry
Level 3 (Nested under Level 2) Counts
- Under L1-1 => L1.0-1:
- L1.0.0-1: 1 entry
- Under L1-1 => L1.0-2:
- L1.0.0-1: 1 entry
- L1.0.0-2: 1 entry
- Under L1-2 => L1.0-1:
- L1.0.0-1: 1 entry
- L1.0.0-2: 1 entry
- Under L1-3 => L1.0-1:
- L1.0.0-3: 1 entry
Reusable Code to Generate Hierarchical Stats
If you want to generate these counts dynamically (so it works even if your dataset grows or changes), here's a JavaScript function that builds a structured stats object and outputs the counts:
function calculateHierarchicalCounts(dataset) { const stats = {}; dataset.forEach(item => { // Split each entry into its three hierarchical parts const [level1, level2, level3] = item.split('_'); // Initialize level 1 if it doesn't exist if (!stats[level1]) { stats[level1] = { count: 0, children: {} }; } stats[level1].count++; // Initialize level 2 under level 1 if it doesn't exist if (!stats[level1].children[level2]) { stats[level1].children[level2] = { count: 0, children: {} }; } stats[level1].children[level2].count++; // Initialize level 3 under level 2 if it doesn't exist if (!stats[level1].children[level2].children[level3]) { stats[level1].children[level2].children[level3] = { count: 0 }; } stats[level1].children[level2].children[level3].count++; }); return stats; } // Usage const hierarchicalStats = calculateHierarchicalCounts(dataset); console.log(hierarchicalStats);
How This Works
- We split each string in the dataset using the underscore
_delimiter to extract the three hierarchical levels. - We build a nested
statsobject where each level tracks its own count, plus achildrenobject for the next level down. - For every entry, we increment the count at each level, initializing the objects if they don't already exist.
内容的提问来源于stack exchange,提问作者cw84
相关产品推荐
相关产品推荐

