1. 배열의 총 합 구하기 (숫자)
0은 초기 accumulator가 됩니다. accumulator는 누적된 값을 의미합니다.
const numbers = [1,2,3,4,5];
const sum = numbers.reduce((accumulator, current)=> accumulator+current , 0);
console.log(sum);
//출력값
15
소스코드 해석:
accumulator은 초기값이 0 으로시작하고 current는 배열의 그 다음값을 의미합니다.
그래서 0+1은 1이되고, accumulator값은 1이 됩니다.
다음 accumulator은 1이되고, current는 2가 되어서 1+2 =3 이됩니다.
다음 accumulator은 3이되고, current는 3이 되어서 3+3 =6 이됩니다.
다음 accumulator은 6이되고, current는 4가 되어서 6+4 =10 이됩니다.
다음 accumulator은 10이되고, current는 5가 되어서 10+5 = 15 가 됩니다.
2. 배열의 평균값 구하기 (숫자)
index은 각 원소의 index값을 알려줍니다. 그래서 사용된 index값은 0 ,1, 2, 3, 4 까지만 있는겁니다.
array은 배열전체 자신을 말해줍니다. 즉 array는 numbers인 겁니다.
index의 값 최대는 4이기 때문에 array.length-1을 해줍니다.
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((accumulator, current, index, array) => {
if (index === array.length - 1) {
return (accumulator + current) / array.length;
}
return accumulator + current;
}, 0);
console.log(sum);
//출력값
3
소스코드 해석:
accumulator은 초기값이 0 으로시작하고 current는 배열의 그 다음값을 의미합니다.
if문은 index값이 4일때만 작동하기 때문에,
return accumulator + currnet만 작동해서 값이 순차적으로 더해집니다.
if문으로 들어갔을때
accumulator은 10이되고, current는 5가 되고 array.length는 5이기 때문에 (10+5)/5 =3 이 됩니다.
3. 문자의 개수 각각 구하기 (문자)
const alphabets = ['a', 'a', 'a', 'b', 'c', 'c', 'd', 'e', 'b'];
const counts = alphabets.reduce((acc, current)=>{
if(acc[current]){
acc[current] +=1;
}else{
acc[current] = 1;
}
return acc;
}, {})
console.log(counts);
//출력값
{ a: 3, b: 2, c: 2, d: 1, e: 1 }
acc[current] 는 acc['a'] 와 같은 뜻이고 acc.a 와 같은 뜻이됩니다. 즉, acc[current]는 a원소가 되는겁니다. 이렇게해서 각각 원소 값을 비교할 수 있게 됩니다.
엑스트라 문제풀이
10보다큰수의 갯수를 구해주세요.
function countBiggerThanTen(numbers){
return numbers.reduce((acc, current)=>{
if(current>10){
return acc + 1;
}else{
return acc;
}
},0)
}
const count = countBiggerThanTen([1,2,3,4,5,10,20,30,40,50,60]);
console.log(count);
'Javascript > 배열' 카테고리의 다른 글
Javascript 배열 내장함수(shift, pop, unshift, push, concat, join) (0) | 2021.01.31 |
---|---|
Javascript 배열 내장함수(filter, splice&slice) (0) | 2021.01.31 |
Javascript 배열 내장함수(forEach, map, indexOf, findIndex, find) (0) | 2021.01.31 |
Javascript 배열 반복문 (for...of, for...in) (0) | 2021.01.31 |
Javascript 배열의 특징(push, length) (0) | 2021.01.31 |