Search code examples
javascriptjsonmaxminimum

Get min and max of nested JSON object


I have a nested json object which looks like---

      [
      {"key":"AXCG","values":[
        {"interval":'1_to_2years',"value":34},
        {"interval":'3_to_4years',"value":12},
        {"interval":'5_to_6years',"value":45},
      ]},
      {"key":"BDGT","values":[
        {"interval":'1_to_2years',"value":194},
        {"interval":'3_to_4years',"value":12},
        {"interval":'5_to_6years',"value":45},
      ]},
{"key":"YTEF","values":[
        {"interval":'1_to_2years',"value":0},
        {"interval":'3_to_4years',"value":12},
        {"interval":'5_to_6years',"value":15},
      ]}]

I want to find the min and max among the value. Like in this case it would be min 0 and 194 maximum. How should I do it?


Solution

  • Find below the code for your use-case,

    'use strict'
    const collection = [
        {
            "key": "AXCG", "values": [
                { "interval": '1_to_2years', "value": 34 },
                { "interval": '3_to_4years', "value": 12 },
                { "interval": '5_to_6years', "value": 45 },
            ]
        },
        {
            "key": "BDGT", "values": [
                { "interval": '1_to_2years', "value": 194 },
                { "interval": '3_to_4years', "value": 12 },
                { "interval": '5_to_6years', "value": 45 },
            ]
        },
        {
            "key": "YTEF", "values": [
                { "interval": '1_to_2years', "value": 0 },
                { "interval": '3_to_4years', "value": 12 },
                { "interval": '5_to_6years', "value": 15 },
            ]
        }]
    const list = []
    collection.every(e => e.values.every(e2 => list.push(e2.value)));
    
    console.log('Max Value:: ' + Math.max.apply(null, list)); // 194
    console.log('Min Value:: ' + Math.min.apply(null, list)); // 0