์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- branch ์์ฑ
- ์ฝ๋๋ธ๋ก
- ๋ธ๋์น ํ์ธ
- branch ์ญ์
- ์ฝ๋๋ธ๋ญ
- Git๋ช ๋ น์ด
- ![rejected]
- ๋งํฌ๋ค์ด
- markdown
- ๋ธ๋์น ์ญ์
- ๋ธ๋์น ์์ฑ
- branch ํ์ธ
- Today
- Total
DevLog
๊ณ ์ฐจํจ์ ๋ฉ์๋ ์ ๋ฆฌ(map, filter, reduce) ๋ณธ๋ฌธ
๊ณ ์ฐจํจ์ ๋ฉ์๋ ์ ๋ฆฌ(map, filter, reduce)
Seungjae Lee 2021. 6. 3. 22:34map()
map() ๋ฉ์๋๋ ๋ฐฐ์ด ๋ด์ ๋ชจ๋ ์์ ๊ฐ๊ฐ์ ๋ํ์ฌ ์ฃผ์ด์ง ํจ์๋ฅผ ํธ์ถํ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํฉ๋๋ค.
map ํ์ฉ ์, ์๋ ๊ณผ์ ์ ๊ผญ ๊ธฐ์ตํ์ธ์.
- ๋ฐฐ์ด์ ๊ฐ ์์๊ฐ
- ํน์ ๋ ผ๋ฆฌ(ํจ์)์ ์ํด
- ๋ค๋ฅธ ์์๋ก ์ง์ (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]
filter()
filter() ๋ฉ์๋๋ ์ฃผ์ด์ง ํจ์์ ํ ์คํธ๋ฅผ ํต๊ณผํ๋ ๋ชจ๋ ์์๋ฅผ ๋ชจ์ ์๋ก์ด ๋ฐฐ์ด๋ก ๋ฐํํฉ๋๋ค.
filter ํ์ฉ ์, ์๋ ๊ณผ์ ์ ๊ผญ ๊ธฐ์ตํ์ธ์.
- ๋ฐฐ์ด์ ๊ฐ ์์๊ฐ
- ํน์ ๋ ผ๋ฆฌ(ํจ์)์ ๋ฐ๋ฅด๋ฉด, ์ฌ์ค(boolean)์ผ ๋
- ๋ฐ๋ก ๋ถ๋ฅํฉ๋๋ค(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"]
reduce()
reduce() ๋ฉ์๋๋ ๋ฐฐ์ด์ ๊ฐ ์์์ ๋ํด ์ฃผ์ด์ง ๋ฆฌ๋์(reducer) ํจ์๋ฅผ ์คํํ๊ณ ,
ํ๋์ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐํํฉ๋๋ค.reduce ํ์ฉ ์, ์๋ ๊ณผ์ ์ ๊ผญ ๊ธฐ์ตํ์ธ์.
- ๋ฐฐ์ด์ ๊ฐ ์์๋ฅผ
- ํน์ ๋ฐฉ๋ฒ(ํจ์)์ ๋ฐ๋ผ
- ์ํ๋ ํ๋์ ํํ๋ก
- ์์ถํฉ๋๋ค. (reduction)
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
๋ฆฌ๋์ ํจ์๋ ๋ค ๊ฐ์ ์ธ์๋ฅผ ๊ฐ์ง๋๋ค.
- ๋์ฐ๊ธฐaccumulator (acc)
- ํ์ฌ ๊ฐ (cur)
- ํ์ฌ ์ธ๋ฑ์ค (idx)
- ์๋ณธ ๋ฐฐ์ด (src)
๋ฆฌ๋์ ํจ์์ ๋ฐํ ๊ฐ์ ๋์ฐ๊ธฐ์ ํ ๋น๋๊ณ , ๋์ฐ๊ธฐ๋ ์ํ ์ค ์ ์ง๋๋ฏ๋ก ๊ฒฐ๊ตญ ์ต์ข ๊ฒฐ๊ณผ๋ ํ๋์ ๊ฐ์ด ๋ฉ๋๋ค.
arr.reduce(callback[, initialValue])
- callback : ๋ฐฐ์ด์ ๊ฐ ์์์ ๋ํด ์คํํ ํจ์. ๋ค์ ๋ค ๊ฐ์ง ์ธ์๋ฅผ ๋ฐ์ต๋๋ค.(acc, cur, idx, src)
-initialValue [Optional] : callback์ ์ต์ด ํธ์ถ์์ ์ฒซ ๋ฒ์งธ ์ธ์์ ์ ๊ณตํ๋ ๊ฐ. ์ด๊ธฐ๊ฐ์ ์ ๊ณตํ์ง ์์ผ๋ฉด ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋น ๋ฐฐ์ด์์ ์ด๊ธฐ๊ฐ ์์ด reduce()๋ฅผ ํธ์ถํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
'๐ง๐ปโ๐ป ๊ฐ๋ฐ๊ฐ๋ฐ > javascript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํจ์ ํํ์ vs ํจ์ ์ ์ธ์ (0) | 2021.06.07 |
---|---|
๊ฐ์ฒด์ ํค๊ฐ ์๋์ง ํ์ธ (0) | 2021.06.05 |
๊ณ ์ฐจํจ์(์ฝ๋ฐฑํจ์) ์ ๋ฆฌ (0) | 2021.06.03 |
[].join() ๋ฉ์๋ (0) | 2021.06.03 |
str.split('')๊ณผ str.split(' ')์ ์ฐจ์ด (0) | 2021.06.03 |