0.0.7 • Published 7 years ago

aggregate-array-extensions v0.0.7

Weekly downloads
-
License
MIT
Repository
-
Last release
7 years ago

aggregate-array-extensions

groupBy

Array.prototype.groupBy = function(keySelector, elementSelector, aggregateTransform)
ParameterDescription
keySelectorFunction that returns a value to group on
elementSelectorFunction that is applied to each element of each group
aggregateTransformFunction that is applied to each group at the end of processing
expect([1, 2, 3, 4, 5]
  .groupBy(x => x % 2 === 0 ? 'even' : 'odd'))
  .toEqual([
    { key: 'odd', value: [1, 3, 5] },
    { key: 'even', value: [2, 4] }
  ])

groupIntoObject

Array.prototype.groupIntoObject = function(keySelector, elementSelector, aggregateTransform)
ParameterDescription
keySelectorFunction that returns a value to group on
elementSelectorFunction that is applied to each element of each group
aggregateTransformFunction that is applied to each group at the end of processing
expect([1, 2, 3, 4, 5]
  .groupIntoObject(x => x % 2 === 0 ? 'even' : 'odd'))
  .toEqual({ 
    odd: [1, 3, 5],
    even: [2, 4]
  })

nearestUpperBound

Array.prototype.nearestUpperBound = function(value, selector)
ParameterDescription
valueValue to find nearest upper bound for
selectorFunction to select the bounded value. The array must be sorted by this value.
var source = [1, 2, 4, 8, 11, 32]
expect(source.nearestUpperBound(0)).toBe(-1)
expect(source.nearestUpperBound(3)).toBe(1)
expect(source.nearestUpperBound(9)).toBe(3)
expect(source.nearestUpperBound(100)).toBe(5)

nearestLowerBound

Array.prototype.nearestLowerBound = function(value, selector)
ParameterDescription
valueValue to find nearest lower bound for
selectorFunction to select the bounded value. The array must be sorted by this value.
  var source = [1, 2, 4, 8, 11, 32]
expect(source.nearestLowerBound(0)).toBe(0)
expect(source.nearestLowerBound(3)).toBe(2)
expect(source.nearestLowerBound(9)).toBe(4)
expect(source.nearestLowerBound(100)).toBe(-1)

findRange

Array.prototype.findRange = function(lower, upper, selector)
ParameterDescription
lowerThe lower bound
upperThe upper bound
selectorFunction to select the bounded value. The array must be sorted by this value.
var source = [1, 2, 4, 8, 11, 32]
expect(source.findRange(1, 32)).toEqual(source)
expect(source.findRange(3, 20)).toEqual([4, 8, 11])
expect(source.findRange(7)).toEqual([8, 11, 32])
expect(source.findRange(null, 7)).toEqual([1, 2, 4])

sum

Array.prototype.sum = function(selector)
ParameterDescription
selectorFunction to select the value to sum
expect([1, 2, 3, 4].sum()).toBe(10)

mapIntoObject

Array.prototype.mapIntoObject = function(keySelector, valueSelector)
ParameterDescription
keySelectorFunction to select the key on the result object
valueSelectorFunction to select the value to assign
expect([
    { v: 1 },
    { v: 2 },
    { v: 3 }
  ].mapIntoObject(x => x.v, x => x.v * 2))
  .toEqual({
    1: 2,
    2: 4,
    3: 6
  })
0.0.7

7 years ago

0.0.6

7 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago