๐คทโ๏ธ ๋ณธ๋ก ์ ์์ ์ค์ํ ๋ฐฐ์ด ์ฌ์ ์ง์ ๊ณต๋ถํ๊ธฐ
๋ฐฐ์ด reduce() ํจ์ ์ฌ์ฉ๋ฒ์ ๋ํด ์์๋ณด๊ธฐ
https://cometruedream.tistory.com/256
๋ฐฐ์ด join() ํจ์ ์ฌ์ฉ๋ฒ์ ๋ํด ์์๋ณด๊ธฐ
https://cometruedream.tistory.com/254
๋ฐฐ์ด map(), forEach() ์ธ๊ธฐ ์๋ ๋ฉ์๋ ์ฌ์ฉ๋ฒ์ ๋ํด ์์๋ณด๊ธฐ
https://cometruedream.tistory.com/253
ํ์ฉ๊ฐ์น๊ฐ ์ข์ every(), some() ํจ์ ์ฌ์ฉ๋ฒ์ ๋ํด ์์๋ณด๊ธฐ
https://cometruedream.tistory.com/250
๐คทโ๏ธ filter ํจ์๋?
javascript์ filter() ํจ์๋ ๋ฐฐ์ด์ ์ํํ๋ฉด์ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์๋ง ์ถ์ถํ์ฌ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํ๋ ํจ์์ ๋๋ค.
filter() ํจ์๋ ๋ฐฐ์ด์ ๊ฐ ์์์ ๋ํด ์ฃผ์ด์ง ์ฝ๋ฐฑ ํจ์๋ฅผ ์คํํ๊ณ ์ฝ๋ฐฑ ํจ์์ ๋ฐํ ๊ฐ์ด true์ธ ์์๋ง ๋ชจ์์ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํฉ๋๋ค.
filter() ๋ฉ์๋์ ๋ํด ์์ธํ ์ดํดํ๋ฉด
๐ก ๋ฐฐ์ด์ ์๋ฃ๊ตฌ์กฐ์์ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฐ๋ง ์๋ก์ด ๋ฐฐ์ด๋ก ๋ฐํ๋ฐ๊ธฐ๋ฅผ ์ํ ๋ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ๋ฐฐ์ด ๋ด์ฅํจ์์ ๋๋ค.
๐คทโ๏ธ filter() ํจ์์ ์์
๋ค์๊ณผ ๊ฐ์ ๋ฐฐ์ด์ด ์์ต๋๋ค.
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9];
๋ค์๊ณผ ๊ฐ์ ๋ฐฐ์ด์์ ์ง์์ ๊ฒฐ๊ณผ๊ฐ๋ง ๋์ถํ๊ณ ์ถ์ ๋ filter() ํจ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
const evenNumbers = numbers.filter(function (number) {
return number % 2 === 0;
});
console.log(evenNumbers);
//๊ฒฐ๊ณผ๊ฐ [2, 4, 6, 8]
์์ ์ฝ๋์์ ์ง์์ ๋ง์กฑํ๋ ์์๋ง ์ถ์ถํด์ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํฉ๋๋ค.
์ต์ ๋ฌธ๋ฒ ํ์ดํ ํจ์๋ก ๋ ๊ฐ๊ฒฐํ ์ฝ๋๋ก ๊ฐ์ ํ ์ ์์ต๋๋ค.
const evenNumbers = numbers.filter((number) => number % 2 === 0);
console.log(evenNumbers);
//๊ฒฐ๊ณผ๊ฐ [2, 4, 6, 8]
ํ์ดํ ํจ์๋ก ์์ ํ๊ณ ์ฝ๋๋ฅผ ๋ ๊ฐ๊ฒฐํ๊ฒ ์ค์ผ ์ ์์ต๋๋ค.
๋ฐ๋๋ก ํ์๊ฐ๋ง ๋์ถํ๊ณ ์ถ์ ๋๋ filter() ํจ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
const evenNumbers = numbers.filter((number) => number % 2 !== 0);
console.log(evenNumbers);
//๊ฒฐ๊ณผ๊ฐ [1, 3, 5, 7, 9]
ํ์ดํ ํจ์์ ํ ์ค๋ก ์ฝ๋๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ๊ตฌํํด์ ํ์์ ๋ง์กฑํ๋ ์์๋ง ์ถ์ถํด์ ์๋ก์ด ๋ฐฐ์ด๋ก ๋ฐํํฉ๋๋ค.
๐คทโ๏ธ filter() ํจ์์ ์์ 2
์ฃผ์ด์ง ๋ฐฐ์ด์์ 5 ์ด์์ ์ซ์๋ง ์ถ์ถํ๊ธฐ
const numbers = [1, 5, 10, 15, 20];
const greaterThanFive = numbers.filter(number => number > 5);
console.log(greaterThanFive); // [10, 15, 20]
filter() ํจ์๋ฅผ ์ด์ฉํด์ ๊ฐ๊ฒฐํ ์ฝ๋๋ก ์ํ๋ ๊ฒฐ๊ณผ ๊ฐ์ ๋์ถํ ์ ์์ต๋๋ค.
๐คทโ๏ธ filter() ํจ์์ ์์ 3
์กฐ๊ธ ๋ ๋์ด๋๋ฅผ ๋์ฌ์ ๊ฐ์ฒด ๋ฐฐ์ด์ age 18 ์ด์์ธ ๊ฐ์ฒด๋ง ์ถ์ถํ๊ธฐ
const users = [
{ name: "Kim", age: 16 },
{ name: "Lee", age: 25 },
{ name: "Park", age: 30 },
{ name: "Choi", age: 14 },
{ name: "Jeon", age: 19 },
];
const adults = users.filter(user => user.age >= 18);
console.log(adults);
// ๊ฒฐ๊ณผ๊ฐ
[
{
"name": "Lee",
"age": 25
},
{
"name": "Park",
"age": 30
},
{
"name": "Jeon",
"age": 19
}
]
๊ฐ์ฒด ๋ฐฐ์ด์์ age 18 ์ด์์ธ ๊ฐ์ฒด๋ง ์ฐพ์์ ์๋ก์ด ๊ฐ์ฒด ๋ฐฐ์ด๋ก ๋ฐํํฉ๋๋ค.
๐คทโ๏ธ ๋ง์ง๋ง์ผ๋ก
์์ ์์ ๋ค์ ํตํด์ filter() ํจ์๋ฅผ ์ฌ์ฉํด์ ์ํ๋ ๋ฐฐ์ด๋ก ํํฐ๋งํด์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
filter() ํจ์๋ฅผ ์ ํ์ฉํ๋ฉด ๋ณต์กํ๊ณ ์ฑ๋ฅ์ ์ ์ข์ for๋ฌธ, ๋ฐ๋ณต๋ฌธ ์์ด๋ ๊ฐ๊ฒฐํ๊ณ ์ํ๋ ์กฐ๊ฑด์ผ๋ก ์ํ๋ ๊ฒฐ๊ณผ๊ฐ๋ง ์ถ์ถํ ์ ์์ต๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐฐ์ด ๋ด์ฅํจ์๋ฅผ ์ ํ์ฉํ๋ฉด ์ฝ๋๋ฅผ ๊ฐ์ํํ๊ณ ์ฑ๋ฅ์ธก๋ฉด์์๋ ์ข์ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
์ฌ๋ฐ๋ ์ค๋์ ๋ ๋ณ ์ด์ธ ๋ณด๊ณ ๊ฐ์ธ์!
https://cometruedream.tistory.com/247
https://cometruedream.tistory.com/243
https://cometruedream.tistory.com/242
https://cometruedream.tistory.com/241
https://cometruedream.tistory.com/244