Skip to content

Instantly share code, notes, and snippets.

@nachodd
Created October 11, 2019 20:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nachodd/d2d5293ed3ac5997c30a40aeff54b58c to your computer and use it in GitHub Desktop.
Save nachodd/d2d5293ed3ac5997c30a40aeff54b58c to your computer and use it in GitHub Desktop.
Average Multidimensional Array Javascript (recursive)
const averange = (input) => {
const {sum, count} = sumAndCount(input)
return sum/count
}
const sumAndCount = (arr) => {
let count = 0
const sum = arr.reduce((acc, element) => {
if(Array.isArray(element)) {
const res = sumAndCount(element)
count += res.count
acc += res.sum
} else {
count += 1
acc += element
}
return acc
}, 0)
return {count, sum}
}
// Given:
const data = [[1,2,3], [4,5,6], 7]
// Use:
averange(data)
// Outputs: 4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment