map๋ฉ์๋๋ ๋ฐฐ์ด ๋ด์ ๋ชจ๋ ์์ ๊ฐ๊ฐ์ ๋ํ์ฌ ์ฃผ์ด์ง ํจ์๋ฅผ ํธ์ถํ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํฉ๋๋ค.
const array1 = [1, 4, 9, 16];
// pass a function to map
const map1 = array1.map(x => x * 2);
console.log(map1);
// expected output: Array [2, 8, 18, 32]
map1์ด x => x * 2 ์ด ์์ผ๋ก ๊ณ์ฐ๋ ์๋ก์ด ๋ฐฐ์ด๋ก ๋ฐํ๋ฉ๋๋ค.
์์๋ค์๊ฒ ์ผ๊ด์ ์ผ๋ก ํจ์๋ฅผ ์ ์ฉํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๊ธฐ ์ ํฉ.
filter() ๋ฉ์๋๋ ์ฃผ์ด์ง ํจ์์ ํ ์คํธ๋ฅผ ํต๊ณผํ๋ ๋ชจ๋ ์์๋ฅผ ๋ชจ์ ์๋ก์ด ๋ฐฐ์ด๋ก ๋ฐํํฉ๋๋ค.
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
const result = words.filter(word => word.length > 6);
console.log(result);
// expected output: Array ["exuberant", "destruction", "present"]
result๋ ๊ธธ์ด๊ฐ 6์ด์์ธ ๋จ์ด๋ค๋ง ๋ชจ์ ์๋ก์ด ๋ฐฐ์ด๋ก ๋ฐํ๋ฉ๋๋ค.
์ค์ง booleanํ์
๋ง ๋ฐํํฉ๋๋ค.
๋ฆฌํด ๊ฐ์ด true์ธ ๊ฒฝ์ฐ์๋ง ๋ฐฐ์ด์ ์ถ๊ฐํ๊ธฐ ๋๋ฌธ์ ์ค๋ณต ์ ๊ฑฐ์ฒ๋ผ ์กฐ๊ฑด์ ๋ง๋ ํน์ ์์๋ค๋ง ์ ๋ฐฐ์ด์ ๋ฃ๊ณ ์ถ์ ๊ฒฝ์ฐ ์ฌ์ฉ์ ์ ํฉ.
๋ฐฐ์ด์ ๊ฐ ์์์ ๋ํด ์ฃผ์ด์ง ๋ฆฌ๋์(reducer) ํจ์๋ฅผ ์คํํ๊ณ , ํ๋์ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐํํฉ๋๋ค.
const array1 = [1, 2, 3, 4];
const reducer = (accumulator, currentValue) => accumulator + currentValue;
// 1 + 2 + 3 + 4
console.log(array1.reduce(reducer));
// expected output: 10
// 5 + 1 + 2 + 3 + 4
console.log(array1.reduce(reducer, 5));
// expected output: 15
map, filter๊ฐ์ ํจ์ํ ๋ฉ์๋๋ฅผ reduce๋ง์ผ๋ก๋ ๊ตฌํํ ์ ์์ต๋๋ค.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/map
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
https://velog.io/@tjdud0123/javascript-map-filter-ํจ์
https://brunch.co.kr/@swimjiy/15