join으로 구분자로 연결해서 ', ' 출력하면 주석으로 되어있는 코드로 출력이 된다. ,쉼표와, 띄어쓰기로 구분이된다. 그리고 '/'는 띄어쓰기는 아닌데,
/기호로 출력이 되는 것을 볼 수 있다.
map이라는 역할은 배열의 길이만큼 즉 numbers에 있는 1, 2, 3, 4를 실행하고
콜백에 조건은 2이다. 그래서 map을 이용해 1 2 = 2, 2 2 = 4, 3 2 = 6, 4 * 2 = 8 이러한 가뵤이 나온다. 그래서 배열의 길이만큼을 읽혀 콜백 조건을 넣어서 실행하는 역할을 한다.
현재 코드를 보면 3명의 이름과, 나이가 있다. 그래서 users로 지정을 하고, isValid와 email을 추가로 지정을 해 주려고할 때 콜백 함수로 전개 연산자를 사용해 3개의 이름과 나이를 불러오고, isValid, email을 불러오는 것이다.
이럴 때에 map이라는 키워드가 유용하게 사용될 수 있다고 했다.
pop은 마지막에 있는 요소를 제거하고 반환한다, 그리고 원본 배열도 변경이 된다.
fruits에 있는 값은 3개다. 사과, 바나나, 체리 근데 맨 마지막에 체리가 있다.
console.log로 pop을 사용하면 체리가 출력 값에 출력이 되고
다시 console.log에 fruits를 출력하면 ['Apple', 'Banana']만이 출력이 된다.
push는 밀어 넣는다는 의미를 가지고 있다. 따라서 예제를 보면, 3개의 과일이 있는데, 또 추가를 하고 싶다. 오렌지를 추가하고 싶은데, 그럴 때 push를 사용하는 것이다. 그리고 오렌지를 추가하고 console.log에 새로운 변수의 이름을 주어서 출력하면 그대로 사과, 바나나, 체리, 오렌지 이렇게 값이 나온다. 그리고 또 망고와 멜론도 push로 만들어서 출력하면 또 멍고와, 멜론 까지도 출력이 되는 것을 확인할 수 있다.
reduce는 마지막 까지 가서 그 마지막 값을 호출하는 것이다.
예제를 보면, 1,2,3이 있다. 그래서 reduce를 사용하고, a,b를 변수 이름으로 설정해 주고 return으로 a + b를 사용해서 console.log로 출력을 하면 값이 6이 나온다. 이유는 초기 값 0 이고 a에 0이 들어가고, b에 1이 들어간다 그래서 더하면 1 또, a는 누적이 되니까 a는 1이 되고 b는 이제 2가 된다 더하면 3
또 누적되서 a는 3 마지막 b는 3으로 가기 때문에 총 값은 6이 되고 끝나는 것이다. 그래서 출력 값에 6이라는 결과가 나오는 것이다.
리턴 값은 생략이 가능하기 때문에 생략을 한다.
그리고 또 1,2,3,4,5,6,으로 늘어났다. 또 결과 값은 21이다. 누적 누적 누적이 되면서 마지막 콜백 함수로 가서, 15 + 6 이되는 것이다.
reduce 예제이다. 우선 이름과 나이 3명을 적었다. reduce로 나이를 총 계산을 하려 한다. 그럴 때 콜백함수로 넣어서 acc + cur을 더하면 된다. 그리고 기본 값을 넣어준다. 그래서 출력을 하면 처음 acc = 0, cur = 20 0 + 20 = 20
누적 acc = 20, cur = 21, 20 + 21 = 41 누적 acc = 41, cur = 11,
41 + 11 = 52가 출력이 된다. 그래서 평균나이도 구하려면, 52 / user.length users의 길이를 말한다. 그래서 나온 값이 소수점이 있으면 보기 힘드니까 toFixed를 사용하는 것이다. 이것이 총 나이의 계산과, 평균나의를 알아보는 것이였다.
다시 한 번 콜백 함수로 넣어주고, 3명의 이름이 들어가게 해야되니까,
push로 name들을 불러온다. 그리곤 return을 해서, join으로 쉼표와 띄어쓰기를 하게 해주어서 console.log에 출력을 하면 users에 있는 3명의 이름들이 잘 출력이 되는 것을 확인할 수 있다. 그리고 []것은 빈 배열이다. 그래서 처음 acc에 들어가는 것은 빈 배열이라는 것이다.