목차
1. 1차배열의 합
2. 2차배열의 합
주기적으로 배열을 다뤄서 요소들의 합을 내놓으라는 문제를 접하는데, 계속 찾아보고 걔념 잡기 귀찮아서 한번에 정리.
1차 배열의 합 : reduce
function a(arr){
return arr.reduce((v,i)=>v+i)
}
console.log(a([1,2,3,4,5]))
1차 배열의 합 : forEach
function a(arr){
arr.forEach(v=>sum+=v);
return sum;
}
console.log(a([1,2,3,4,5]))
1차 배열의 합 : map
function a(arr){
arr.map(v=>sum+=v);
return sum;
}
console.log(a([1,2,3,4,5]))
forEach랑 map의 차이점
- return 값을 버리고 자료형이 없는 값을 전달하는가
- return 값을 저장해서 만든 새 배열로 값을 전달하는가.
forEach와 map과 reduece는 다음 게시글에 자세히 정리해놓았다 : https://hancoco.tistory.com/39
2차 배열의 합 : reduce -> 공식은 외웠는데 뭔가 이상하게 알고 있음
const arr = [1, [2, 3], 4, [5, 6, 7]];
const arr_concat = arr.reduce((stack, el)=>{
// 이전 요소의 누적된 배열과 현재 요소를 하나의 배열로 합함.
return stack.concat(el);
//stack이 누적될 변수, el이 앞으로 누적할 현재값, {}바깥에 있는 []이 누적변수의 초기값
/*
concat(el)에는 1,[2,3],4,[5,6,7]이 오는거 아닌가?
그래야 현재요소랑 인덱스 값이 1:1로 연결되는거 아닌가? 그거때문에 인덱스 값을 안 준건가?
2중배열 안에 있더라도 무조건 안의 요소를 1개 취급하는건가?
*/
}, []);
console.log(arr_concat);
2차 배열의 합 : join과 split
let arr=[1,[2,3],4,[5,6,7]]
console.log(arr.join().split(','));
댓글