getMaxValue

getMaxValue

  • (collection: Numbers) => number | undefined
  1. Return the largest number in the collection

    getMaxValue([2, 1, 3]) // is 3
    getMaxValue([]) // is undefined
    getMaxValue([2, 1, 3]) // is 3
    getMaxValue([]) // is undefined
    
    getMaxValue([2, 1, 3]) // is 3
    getMaxValue([]) // is undefined
    getMaxValue([2, 1, 3]) // is 3
    getMaxValue([]) // is undefined
    
  2. Sometimes we need the largest number in a collection. Below, we're preparing to load test our website. Using last week's metrics, let's find the maximum number of site visits so we know how many to emulate for testing.

    const metrics = {
      mon: { views: 5128, avgRequestTime: 0.42 },
      tue: { views: 4790, avgRequestTime: 0.39 },
      wed: { views: 4845, avgRequestTime: 0.41 },
      thr: { views: 5401, avgRequestTime: 0.45 },
      fri: { views: 5326, avgRequestTime: 0.42 },
    }
    
    const getViewMetrics = mapValues(get('views'))
    const getMaxViews = compose([getViewMetrics, getMaxValue])
    const maxViews = getMaxViews(metrics)
    console.log(maxViews) // is 5401
    type Metric = {
      views: number
      avgRequestTime: number
    }
    type Metrics = Record<string, Metric>
    const metrics: Metrics = {
      mon: { views: 5128, avgRequestTime: 0.42 },
      tue: { views: 4790, avgRequestTime: 0.39 },
      wed: { views: 4845, avgRequestTime: 0.41 },
      thr: { views: 5401, avgRequestTime: 0.45 },
      fri: { views: 5326, avgRequestTime: 0.42 },
    }
    
    const getViews = get('views')<Metric>
    const getViewMetrics = mapValues(getViews)<Metrics>
    const getMaxViews = compose([getViewMetrics, getMaxValue])
    const maxViews = getMaxViews(metrics)
    console.log(maxViews) // is 5401
    
    const metrics = {
      mon: { views: 5128, avgRequestTime: 0.42 },
      tue: { views: 4790, avgRequestTime: 0.39 },
      wed: { views: 4845, avgRequestTime: 0.41 },
      thr: { views: 5401, avgRequestTime: 0.45 },
      fri: { views: 5326, avgRequestTime: 0.42 },
    }
    
    const getViewMetrics = mapValues(get('views'))
    const getMaxViews = compose([
      getViewMetrics,
      getMaxValue,
    ])
    const maxViews = getMaxViews(metrics)
    console.log(maxViews) // is 5401
    type Metric = {
      views: number
      avgRequestTime: number
    }
    type Metrics = Record<string, Metric>
    const metrics: Metrics = {
      mon: { views: 5128, avgRequestTime: 0.42 },
      tue: { views: 4790, avgRequestTime: 0.39 },
      wed: { views: 4845, avgRequestTime: 0.41 },
      thr: { views: 5401, avgRequestTime: 0.45 },
      fri: { views: 5326, avgRequestTime: 0.42 },
    }
    
    const getViews = get('views')<Metric>
    const getViewMetrics = mapValues(
      getViews
    )<Metrics>
    const getMaxViews = compose([
      getViewMetrics,
      getMaxValue,
    ])
    const maxViews = getMaxViews(metrics)
    console.log(maxViews) // is 5401