์ผํ ์ฐ์ฐ์๋
MDN์์๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํ๋ค.
์ผํ ์ฐ์ฐ์๋ ๊ฐ ํผ์ฐ์ฐ์๋ฅผ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ํ๊ฐํ๊ณ ๋ง์ง๋ง ํผ์ฐ์ฐ์์ ๊ฐ์ ๋ฐํํ๋ค.
์ผํ ์ฐ์ฐ์๋ ์ฃผ๋ก ์ฌ๋ฌ ๋์์ ํ๋์ ์ค์์ ์ฒ๋ฆฌํ๋ ค๋ ๋ณต์กํ ๊ตฌ์กฐ์์ ํ์ฉํ ์ ์๋ค.
์ฐ์ฐ์ ์ฐ์ ์์์์ ๊ฐ์ฅ ๋ฎ์ ์์๋ฅผ ๊ฐ์ง๊ธฐ๋๋ฌธ์ ๋จผ์ ์ํํ๊ธฐ ์ํด์๋ ๊ดํธ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
let x, y, z;
x = 1, y = 2, z = 3; // 3
console.log(x); // 1
let a, b, c;
a = (b = 5, c = 6); // 6
console.log(a); // 6
์ผํ ์ฐ์ฐ์์ ํ์ฉ
for ๋ฌธ
const array = [
['a', 'b', 'c'],
['d', 'e', 'f'],
['g', 'h', 'i'],
];
for (let i = 0, j = 2; i <= 2; i++, j--) {
console.log(`array[${i}][${j}] = ${array[i][j]}`);
}
์ ์์ ๋ 2์ฐจ์ ๋ฐฐ์ด์ ๋๊ฐ์ ์ ์์นํ๋ ์์์ ๊ฐ์ ์ถ๋ ฅํ๋ ์ฝ๋๋ค.
์ผํ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด์ ํ ์ค์์ ๋ ๊ฐ์ ์ฐ์ฐ์ด ์คํ๋๊ณ ์๋ค. (i๋ ์ฆ๊ฐ, j๋ ๊ฐ์)
reduce() ๋ฉ์๋
const array = ['apple', 'banana', 'banana', 'orange', 'orange', 'orange'];
const group = array.reduce((acc, cur) => ((acc[cur] = (acc[cur] || 0) + 1), acc), {});
console.log(group); // {apple: 1, banana: 2, orange: 3}
์ ์์ ๋ [ic]array[/ic]๋ฐฐ์ด ๋ด ๊ฐ ๊ฐ๊ณผ ๋น๋๋ฅผ ํฌํจํ๋ [ic]group[/ic]๊ฐ์ฒด๋ฅผ ๋ง๋๋ ์ฝ๋๋ค.
์ผํ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด์ [ic]reduce()[/ic] ๋ฉ์๋๊ฐ ์คํ๋ ๋๋ง๋ค ๋น๋์๋ฅผ ์นด์ดํ ํ ๊ฐ์ ๋ด์ ๊ฐ์ฒด [ic]acc[/ic]๋ฅผ ๋์ ํ๊ณ ์๋ค.
์ ๋ฆฌ
- ์ผํ ์ฐ์ฐ์๋ ๊ฐ ํผ์ฐ์ฐ์๋ฅผ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ํ๊ฐํ๊ณ ๋ง์ง๋ง ํผ์ฐ์ฐ์์ ๊ฐ์ ๋ฐํํ๋ค.
- ์ฝ๋๋ฅผ ์ค์ด๋๋ฐ์ ๋์์ด ๋์ง๋ง ๊ฐ๋ ์ฑ์ ์ํด ์ํฉ์ ๋ง๊ฒ ์ ์ฌ์ฉํด์ผ ํ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ ๋ค.
์ฐธ๊ณ
https://ko.javascript.info/operators
๊ธฐ๋ณธ ์ฐ์ฐ์์ ์ํ
ko.javascript.info
[Javascript] 15๊ฐ์ง ์ ์ฉํ map, reduce, filter
์๋ ๊ธ์ ๋ฒ์ญ ๋ฐ ์์ฝํ ๊ธ.
dongmin-jang.medium.com
https://ko.javascript.info/operators
๊ธฐ๋ณธ ์ฐ์ฐ์์ ์ํ
ko.javascript.info