cReduce

Write a function called solution that replicates Array.prototype.reduce and call it cReduce.

Callback takes 4 input parameters, accumulator, element, index and original array. documentation

result = [5,8,7].cReduce( (acc, e, i, arr) => {
  console.log(acc, e, i, arr)
  return acc + e + i
}, 'hi')
// console.log will be called 3 times:
//    'hi', 5, 0, original array
//    'hi50', 8, 1, original array
//    'hi5081', 7, 2, original array
// result will be 'hi508172'

It is best practice to pass in 2 arguments into reduce function. Therefore, for this challenge, you can assume that when your function, cReduce, will always be called with 2 arguments: a function and initial value.