배열 내장함수3
- reduce
- reverse
배열의 값을 모두 사용하여 어떤 값을 연산해야 할때
const numbers = [1,2,3,4,5]
//accumulator: 누적된 값, current: 현재값, 0:초기값
const sum = numbers.reduce((accumulator, current) => accumulator + current,0)
console.log(sum) //15
/*
0 + 1 = 1
1 + 2 = 3
3 + 3 = 6
6 + 4 = 10
10 + 5 = 15
*/
//평균값 구하기.
//acc : 누적된 값 , current:현재값, index:인덱스, array: 배열
const avg =numbers.reduce((acc, current, index, array) =>{
if(index == array.length - 1){
return (acc + current) / array.length;
}
return acc + current
})
console.log(avg) //3
//같은 알파벳 갯수 세기
const alphabets = ["a", "a", "a", "b", "c", "c", "d", "e"];
const counts = alphabets.reduce((acc,current)=>{
if(acc[current]){
acc[current] += 1
}else{
acc[current] = 1
}
return acc;
},{})
console.log(counts)//{a: 3, b: 1, c: 2, d: 1, e: 1}
배열의 원소를 뒤집어 주는 함수, 원본이 변형됨.
const arr = [1,3,4,5,6]
cosnt reversed = reverse(arr)
console.log(reversed) // 6,5,4,3,1