내부 숙제에서 reduce
를 사용하지 않고 구현하라는 문제가 나왔다.
이중배열 속에 배열의 값들이 담겨져있는데
그것을 배열에 담겨져있는 키와 밸류값으로 리턴
하라는 문제였는데
reduce
를 사용하지 않고 구현하는 것은 정말 금방 했다.
근데 문제는 reduce
를 워낙 안쓰다보니 활용하는 방법을 몰라서
맨날 더하기만 썼지 다른건
개고생을 하다가 물어봐서 내가 까먹을까봐 적어놓는 글이다.
위 그림의 모양을 구현하면 되는 것이였는데, 풀어낸 코드는 이러하다.
const arr = [ ["철수", 10], ["영희", 11], ["훈이", 9], ["맹구", 10], ]; arr.reduce((acc, cur) => {acc.push({name: cur[0],age: cur[1],});return acc;}, []);
const arr = [ ["철수", 10], ["영희", 11], ["훈이", 9], ["맹구", 10], ]; arr.reduce((acc, cur) => {return [...acc,{name: cur[0],age: cur[1],},];}, []);
위에는 초기값으로 준 acc에 들어오는 cur들을 객체의 형태로 변환하여 push로 집어넣어주는 방식이고
아래는 초기값에 들어온 cur의 형태를 객체로 변환하여 쌓아나가는 방식이다.
두개 중 뭐가 더 좋은지는 잘 모르겠다, 속도도 모르겠고 공부를 안해서 모르는거겠지(....)
형한테 듣기로는 map과 reduce가 생겨남에 따라 병렬컴퓨팅이 가능해졌다고 이야기를 들었는데
그렇다는 소리는 속도를 빠르게 하기 위해서는 필수적으로 사용을 해야한다는 것이고
공부를 해야한다는 뜻인데. . . . 멀리 가지도 않고 바로 다음 문제에서 발목잡혀서 문제를 못 풀고있다.
에라이