์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- useRef
- position
- ์๊ณ ๋ฆฌ์ฆ
- Props
- fetch API
- ๋ฐ๋ธ์ฝ์ค
- ์ฝ๋ฉํ ์คํธ
- ๋ฐ๋ธ์ฝ์ค3๊ธฐ
- ๋ธ๋ก๊ทธ
- float
- CSS
- REACT
- ํ๋ก๊ทธ๋๋จธ์ค
- Flex
- ํ๋ก ํธ์๋
- ์๋ฐ์คํฌ๋ฆฝํธ
- history api
- useEffect
- Gatsby
- Today
- Total
Daehyunii's Dev-blog
์ผํญ ์กฐ๊ฑด ์ฐ์ฐ์ vs filter( ) ๋ฉ์๋ ์ฝ๋ ๊ฐ๋ ์ฑ ๋น๊ต ๋ณธ๋ฌธ
์ผํญ ์กฐ๊ฑด ์ฐ์ฐ์ vs filter( ) ๋ฉ์๋ ์ฝ๋ ๊ฐ๋ ์ฑ ๋น๊ต
Daehyunii 2022. 12. 22. 14:24//์ผํญ ์กฐ๊ฑด ์ฐ์ฐ์๋ก ํํ
const EmojiList = ({ emojis, keyword }) => {
return (
<Container>
{emojis.map((emoji) => {
return keyword === "" ? (
<EmojiListItem emoji={emoji} key={emoji.title}></EmojiListItem>
) : emoji.title.includes(keyword) ||
emoji.keywords.includes(keyword) ? (
<EmojiListItem emoji={emoji} key={emoji.title}></EmojiListItem>
) : undefined;
})}
</Container>
);
};
export default EmojiList;
๋ฐ๋ธ์ฝ์ค ๋ฆฌ์กํธ ๊ฐ์๋ฅผ ๋ค์ผ๋ฉด์ ์ค์ต์ ํ๋ ์ค์ ๊ฒ์์ ํตํด ์ผ์นํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ ๋๋งํ๋ ๊ธฐ๋ฅ์ ๋ง๋ค๊ฒ ๋์๊ณ ,
๊ฐ์์ ํด๋น ๋ถ๋ถ์ ๋ฃ๊ธฐ์ ์ ์ค์ค๋ก ๋จผ์ ๋ง๋ค์ด๋ณด๋ฉด ์ข๊ฒ ๋ค๋ ์๊ฐ์ผ๋ก ์ฝ๋๋ฅผ ๋จผ์ ๊ตฌํํด ๋ณด์๋ค. ์ฌํ๊น์ง ์กฐ๊ฑด๋ฌธ ๋์ ์ผํญ ์กฐ๊ฑด ์ฐ์ฐ์, ๋ ผ๋ฆฌ ๊ณฑ(&&), ๋ ผ๋ฆฌ ํฉ(||)์ผ๋ก ํํ์ ๋ง์ดํด์ ์๊ฐ์ ์ผ๋ก ์๊ฐ๋ ๋ฐฉ์์ธ ์ผํญ ์กฐ๊ฑด ์ฐ์ฐ์๋ก ํด๋น ์ฝ๋๋ฅผ ๊ตฌํํ๊ณ ์ ๋์ํ๋ ๊ฒ์ ํ์ธํ์ง๋ง ๋ณด๋ค์ํผ ๊ฐ๋ ์ฑ์ด ํ์ ํ๊ฒ ๋จ์ด์ง๋๊ฒ์ ํ์ธํ ์ ์๋ค.
์ฝ๋๋ฅผ ๊ฐ๋ตํ๊ฒ ์ค๋ช ํด๋ณด๋ฉด keyword์ ๊ฐ์ด ""๋น ๋ฌธ์์ด ์ด๋ผ๋ฉด ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ฃผ๊ณ , ๊ทธ๊ฒ ์๋๋ผ๋ฉด keyword์ ๊ฐ์ emoji.title๊ณผ emoji.keywords์ ๋ค์ด๊ฐ ์๋์ง๋ฅผ ํ๋จํ์ฌ true์ธ ๋ฐ์ดํฐ๋ง ๋ ๋๋งํ๋๋ก ์ค์ ํ๋ค.
๋ฐ๋ก ๋ฐ๋ธ์ฝ์ค ๊ฐ์๋ฅผ ํตํด์ ๊ฐ์ฌ๋์ ์ด๋ป๊ฒ ์ฝ๋๋ฅผ ๊ตฌํํ๋์ง ํ์ธํ๋ค. ๊ฐ์ฌ๋์ filter( ) ๋ฐฐ์ด ๊ณ ์ฐจ ํจ์๋ฅผ ์ด์ฉํด์ ์ฝ๋๋ฅผ ์์ฑํ์ จ๋ค.
//filter()๋ก ๊ตฌํ
const EmojiList = ({ emojis, keyword }) => {
return (
<Container>
{emojis
.filter((emoji) => {
return (
emoji.title.indexOf(keyword) >= 0 ||
emoji.keywords.indexOf(keyword) >= 0
);
})
.slice(0, 10)
.map((emoji) => {
return (
<EmojiListItem emoji={emoji} key={emoji.title}></EmojiListItem>
);
})}
</Container>
);
};
export default EmojiList;
ํ ๋์ ๋น๊ตํด๋ filter()๋ก ๊ตฌํํ ์ฝ๋๊ฐ ๊น๋ํ๊ณ ๋ณด๊ธฐ๊ฐ ์ข์๊ฒ์ ํ์ธํ ์ ์๋ค. Array์ ์ ์ฉํ ๊ณ ์ฐจ ํจ์๋ค์ ์ต๋ํ ํ์ฉํ๋๊ฒ์ด ๊ฐ๋ ์ฑ ์ธก๋ฉด์์ ํฐ ๋์์ด ๋ ๊ฒ ๊ฐ๋ค.
์์ ์ฌ์ง์ ๋ฐฉ๊ธ ๋ง๋ค์ด๋ณธ Emoji Search ํ์ด์ง์ด๋ค. ๊ทธ๋ฅ ์ฌ๋ ค๋ณด์๋ค..๐ฅฒ
'๐ Language & CS knowledge > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ปดํฌ๋ํธ์ ๋ผ์ดํ์ฌ์ดํด ๋ฉ์๋ (0) | 2022.12.23 |
---|---|
์ปดํฌ๋ํธ ๋ฐ๋ณต (0) | 2022.12.23 |
ํ์ด์ง์์ ํด๋ฆญ์ ๋ฐ์ดํฐ ๋ณต์ฌํ๊ธฐ (0) | 2022.12.22 |
ref: DOM์ ์ด๋ฆ ๋ฌ๊ธฐ (0) | 2022.12.22 |
์ด๋ฒคํธ ํธ๋ค๋ง (0) | 2022.12.22 |