์ฌ๋ฌ ๊ฐ์ง ๋ฐ์ดํฐ ์ค์ ์ํ๋ ๋ฐ์ดํฐ๋ง์ ๋ฝ์๋ด๊ณ ์ถ๋ค๋ฉด? ๐ค
์ด์ฒ๋ผ ์ด๋ค ๋ฐ์ดํฐ ์งํฉ์์ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฐ๋ง ๋ฐํ๋ฐ๊ธฐ๋ฅผ ์ํ ๋ filter
๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์์ filter
๋ ๋ฐฐ์ด์ ์ฌ์ฉํ๋ฉฐ, ์ฃผ์ด์ง ํจ์๋ฅผ ๋ง์กฑํ๋ ๋ชจ๋ ์์๋ฅผ ๋ชจ์ ์ ๋ฐฐ์ด๋ก ๋ฐํํ๋ค.
์๋ ์ฝ๋๋ฅผ ํตํด filter
๊ฐ ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง ๊ฐ๋จํ ์์๋ณด์.
let array = [3,5,11,0,9,'string'];
let result = array.filter((value) => value < 10)
console.log(result);
//output : array [3, 5, 0, 9]
์์ ์ฝ๋๋ฅผ ๋ณด๋ฉด, array๋ผ๋ ๋ฐฐ์ด์ด ์๋ค. ์ด ๋ฐฐ์ด์์ 10๋ฏธ๋ง์ ๊ฐ๋ง ์ถ์ถํ๋ ค๊ณ ํ๋ค.
์ด๋ฅผ ์ํด ์ฐ์ ๊ฒฐ๊ณผ๊ฐ๋ค์ ๋ด์๋ result
๋ณ์๋ฅผ ๋ง๋ค์๋ค. ๊ทธ ํ ๊ธฐ์กด ๋ฐฐ์ด์ .filter()
๋ฅผ ๋ถ์ด๊ณ ๊ดํธ ์์๋ ํํฐ์กฐ๊ฑด์ด ๋๋ ํจ์๋ฅผ ๋ฃ์ด ์ฃผ์๋ค.
filter
๋ฅผ ์ธ ๋, ์กฐ๊ฑด์์ filter()์ ๊ดํธ ์์ ์ฐ๋ ๋ฐฉ๋ฒ์ด ์๊ณ filter์ธ๋ถ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
์ ์ฌ์ง์ #1 solution์ ๋ณด๋ฉด, filter
๋ฉ์๋์ ์กฐ๊ฑด์์ ๊ดํธ ์์ ๋ฐ๋ก ์์ฑํด ์ฃผ์๋ค.
์ด ๋ฐฉ๋ฒ์ ์กฐ๊ฑด์์ด ๊ฐ๋จํ ๊ฒฝ์ฐ ์ ์ฉํ๋ฉฐ, ์ฝ๋ ๋ผ์ธ์ ์ค์ผ ์ ์๊ณ ํ ๋์ ๋ณด๊ธฐ ํธํ ์ฅ์ ์ด ์๋ค.
์ ์ฌ์ง์ #2 solution ์ ๋ณด๋ฉด, filter
์ ์กฐ๊ฑด์ ์ธ๋ถํจ์๋ก ์ ์ธํ ํ callbackํ๊ณ ์๋ค.
์ด ๋ฐฉ๋ฒ์ filter ์กฐ๊ฑด์์ด ๋ณต์กํด์ง ์๋ก ์ฝ๋ ๊ด๋ฆฌ์ ์ ์ฉํ ๊ฒ ๊ฐ๋ค.
filter๋ฅผ ์ด์ฉํด ๋ค์ ๋ฐฐ์ด์์ species๊ฐ 'mammalia'์ธ ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ค๊ณ ์ฝ์์ ์ถ๋ ฅํด ์ฃผ์ธ์.
let animals = [ { species: 'mammalia', name: "cat" }, { species: 'reptiles', name: "lizard" }, { species: 'amphibia', name: "flog" }, { species: 'mammalia', name: "dog" }, { species: 'amphibia', name: "salamander" } ];
์ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด์ ์ฐ์ ์๋ก์ด ๋ฐฐ์ด์ ์ ์ฅํ ๋ณ์ result
๋ฅผ ์ ์ธํ๋ค.
๐ let result
๊ทธ ํ animals ๋ฐฐ์ด์ filter
๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
๐ let result = animals.filter()
์ด์ filter์ ์กฐ๊ฑดํจ์๋ฅผ ์ค ๊ฒ์ด๋ค. ๊ทผ๋ฐ animals ๋ฐฐ์ด์ ์์๋ค์ {}
์์ ๋ด๊ฒจ์๋ค. ์ด๋ฐ ์ค๊ดํธ ์์ ์์๋ฅผ property
๋ผ๊ณ ํ๋๋ฐ, .
์ ์ฐ์ด์ ์ ๊ทผํ ์ ์๋ค.
๋ํ species
๊ฐ 'mammalia'
์ ์ผ์นํ๋์ง ๊ฒ์ฌํ๊ธฐ ์ํด ๋๋ฑ์ฐ์ฐ์ ==
๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๋ค. ๊ทธ๋ผ ์กฐ๊ฑด์์ ์๋์ ๊ฐ์ด ์์ฑํ ์ ์๋ค.
๐ let result = animals.filter((value) => value.species == 'mammalia')
์ด๋ฅผ ์ฝ๋๋ก ์์ฑํ๋ฉด ์๋์ ๊ฐ๋ค.
let animals = [
{ species: 'mammalia', name: "cat" },
{ species: 'reptiles', name: "lizard" },
{ species: 'amphibia', name: "flog" },
{ species: 'mammalia', name: "dog" },
{ species: 'amphibia', name: "salamander" }
];
let result = animals.filter((value) => value.species == 'mammalia')
console.log(result);
๊ฒฐ๊ณผ๊ฐ ์๋์ ๊ฐ์ด ๋์ค๋ฉด ์ฑ๊ณต์ด๋ค.
[
{ species: "mammalia", name: "cat" },
{ species: "mammalia", name: "dog" }
]
์ค๋ช ์ด ์์ฃผ ์๋์ด ์๋ค์ ๊ตฟ๊ตฟ !!