//!Trickiest of all array methods const arr = [1,2,3,4,5] //undefined //Array method for two goals: //1. end up with one value in the end //2. persist the return or the outcome of iterating over our elements in each subsequent iteration //reduce() takes two arguments //So in the first run, accumulator = 0 //Second argument ("0") means we start with the value 0 arr.reduce((accumulator, currentElement) => accumulator + currentElement, 0) //15 //How this function works: //first run: accu = 0 + cV 1 //second run: accu = 1 + cv 2 //third run: accu = 3 + cv 3 //fourth run: accu = 6 + cv 4 //fifth run: accu = 10 + cv 5 // --> 15 (end result) //if we choose as second argument 10 instead of 0 //then the accumulator starts at 10