# Converting numerical arrays into relative fractions

Posted on

We needed to convert an array of (positive) numbers into fractions of each other, with the largest number being `1`, which equals 100 percent. This function turns all values into fractions between `0` and that largest value.

``````const toRelative = numbers => {
const largestNumber = Math.max(...numbers)

return numbers.map(number => number / largestNumber)
}

// The largest number in the array, 16, becomes 1 (= 100%) in the result. All
// other results are based on that: 8 is 0.5 (= 50%) of 16, 4 is 0.25 (= 25%),
// and so on.
toRelative([0, 8, 12, 6, 16, 3, 0])
// ⇒ [0, 0.5, 0.75, 0.375, 1, 0.1875, 0]

// Relative values are based on the largest value, which is 40 in this example.
toRelative([8, 15, 21, 5, 10, 40])
// ⇒ [0.2, 0.375, 0.525, 0.125, 0.25, 1]``````
``````const toRelative = numbers => {
const largestNumber = Math.max(...numbers)

return numbers.map(number => number / largestNumber)
}

// The largest number in the array, 16, becomes 1 (= 100%) in the result. All
// other results are based on that: 8 is 0.5 (= 50%) of 16, 4 is 0.25 (= 25%),
// and so on.
toRelative([0, 8, 12, 6, 16, 3, 0])
// ⇒ [0, 0.5, 0.75, 0.375, 1, 0.1875, 0]

// Relative values are based on the largest value, which is 40 in this example.
toRelative([8, 15, 21, 5, 10, 40])
// ⇒ [0.2, 0.375, 0.525, 0.125, 0.25, 1]``````