ํฐ์คํ ๋ฆฌ ๋ทฐ
๊ทธ๋, id๋ ๊ฐ์ ธ์์ด. ์ด์ ์ด๋กํ ๊ฑด๋ฐ?! - find()
์ฑ._. 2025. 1. 15. 01:00๊ตฌํ ์ํฉ
closest(), getAttribute()์ ์ฌ์ฉํ์ฌ ์ํ ์นด๋๋ฅผ ํด๋ฆญํ๋ฉด ํด๋น id๋ฅผ ๊ฐ์ ธ์ค๋๋ก ๊ตฌํํ์๋ค.
๊ทธ๋ผ ์ด์ ๊ทธ id๋ฅผ ๊ฐ๊ณ ๋ญ ํด์ผํ๋!
์๋ง์ ๋ฐฉ์์ผ๋ก ๋ณํํ์ฌ ํ๋ฉด์ ๋์์ผ ํ๋ค.
์ ๊ณต๋ ๊ณผ์ ๋ด์ฉ์ ๋ฐ๋ฅด๋ฉด
| ์ํ ํฌ์คํฐ ์ํ ์ ๋ชฉ ์ํ ๋ด์ฉ ํ์ ๋ถ๋งํฌ ์ถ๊ฐ ๋ฒํผ |
์ผ๋ก ๋ชจ๋ฌ์ฐฝ์ ๊ตฌํํด์ผ ํ๋ค.
์ด์ ๊ฑท๊ธฐ๋ฐ์์ ๋ฐฐ์ด find() ๋ฉ์๋๋ฅผ ์ด์ฉํด์ผ ํจ์ ํํฐ๋๊ป ์ ํด๋ค์๋ค๐๐ป
find() ๋ฉ์๋๋?
๋ฐฐ์ด์์ ์กฐ๊ฑด์ ๋ง๋ ํ๋์ ๋ด์ฉ(์์ ํน์ ๊ฐ์ฒด)๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ์ด๋ค.
๋ฐฐ์ด ๋ด์ ์์๊ฐ ๋จ์ผ ์์๋ผ๋ฉด ์กฐ๊ฑด๊ณผ ๋์ผํ ์์๊ฐ ๊ทธ๋๋ก ์ถ๋ ฅ์ด ๋๊ณ
๋ฐฐ์ด ๋ด ์์๊ฐ ๊ฐ์ฒด๋ผ๋ฉด ์กฐ๊ฑด์ ๋ถํฉํ ์์๋ฅผ ๊ฐ๊ณ ์๋ ๊ฐ์ฒด๊ฐ ๊ฐ์ฒด ํํ ๊ทธ๋๋ก ์ถ๋ ฅ๋๋ค.
๐find ์์ฑ๋ฒ
๋ฐฐ์ด.find((๋ฐฐ์ด๋ด์_์์) => {
return ์กฐ๊ฑด
})
๐์์
const numbers = [1, 2, 3, 4, 5];
const ์ผ๋ณด๋คํฐ์ํ๋ = numbers.find((number) => {
return number > 3
});
console.log(์ผ๋ณด๋คํฐ์ํ๋); // 4
const products = [
{
๋ธ๋๋: "์์๋ ",
์ํ๋ช
: "์ผ์ด๋ธ ์นด๋ผ ๋ฐํ ๋ํธ - 6 Color",
๊ฐ๊ฒฉ: 39900,
ํ์ : 5,
ํ๊ธฐ๊ฐ์: 2997,
์ข์์์: 31352,
},
{
๋ธ๋๋: "์ปค๋ฒ๋ซ",
์ํ๋ช
: "์์ผ์
์ด์ฉ๊ณ ",
๊ฐ๊ฒฉ: 34300,
ํ์ : 5,
ํ๊ธฐ๊ฐ์: 45021,
์ข์์์: 156057,
},
];
const ์ํํ๋ = products.find((product) => {
return product.์ข์์์ > 100000;
});
console.log(์ํํ๋);
์ค์ ๊ตฌํ
๊ตฌํํด์ผ ํ ๋ด์ฉ์ ๋จ๊ณ๋ณ๋ก ์ ๋ฆฌํด๋ณด์๋ฉด,
๐1. ๋ฉ์ธ ํ๋ฉด์ ์๋ ์ํ๋ค์ API๋ฅผ ๋ฐฐ์ด ํํ๋ก ๊ฐ์ ธ์จ๋ค.

๐ fetch ํจ์๋ก ๊ฐ์ ธ์จ ๊ฒฐ๊ณผ๋ฅผ ํจ์ ๋ฐ์์ ์ ์ญ ๋ณ์๋ก ์ ์ธํ๊ธฐ

๐2. ํด๋ฆญํ ์นด๋์ ์ํ id์ ๋ฉ์ธ API์ ์ํ id๋ฅผ ๋น๊ตํ๋ค.
2-1. find ๋ฉ์๋๋ฅผ ํ์ฉํ์ฌ id๊ฐ ๊ฐ์ ์ํ ๋ด์ฉ์ ๊ฐ์ฒด๋ฅผ ์ฝ์์ฐฝ์ ์ถ๋ ฅํด๋ณธ๋ค.
๐ find ๋ฉ์๋๋ก ๊ตฌํํ๊ธฐ
const clickModal = postArray.find(function (postArray) {
return Number(postArray.id) === Number(cardID);
});

๐3. ์ถ๋ ฅ๋ ๊ฐ์ฒด์์ ํ์ํ ๋ด์ฉ๋ง ์์ ๊ณจ๋ผ ๋ชจ๋ฌ์ฐฝ์ ๋ํ๋ธ๋ค.
๐ 1์์ ๊ฐ์ ธ์จ API๋ฅผ ๋ฐํ์ผ๋ก temp ๋ด์ฉ ๊ตฌ์ฑํ๊ธฐ
function displayModal(info) {
temp_modal = `<div data-id="${info.id}" class="modalCard">
<img id="poster" src="${
baseImgUrl + info.poster_path
} class="card-img-top alt="poster">
<h1>${info.title}</h1>
<p>${info.overview}</p>
<h3>ํ์ : ${info.vote_average}<span id="mvaver"></span></h3>
<span class="close">×</span>
<button class="book">๋ถ๋งํฌ ์ถ๊ฐ</button>
</div>`;
modalSection.innerHTML = temp_modal;
};
๐4. find ๋ฉ์๋์ ๋ชจ๋ฌ์ฐฝ์ ๋ํ๋ด๋ ํจ์ ์ฐ๊ฒฐํ๋ค.
๐ ๋ชจ๋ฌ์ฐฝ ํด๋ฆญ ์ด๋ฒคํธ๋ฆฌ์ค๋์ 2์ find ๋ฉ์๋์ 3์ displayModal ํจ์๋ฅผ ๋ฃ์ด์ฃผ๊ธฐ
cardSection.addEventListener("click", function (e) {
const mvCard = e.target.closest(".mvCard");
// console.log(mvCard);
const cardID = mvCard.getAttribute("data-id");
console.log(cardID);
const clickModal = postArray.find(function (postArray) {
return Number(postArray.id) === Number(cardID);
});
console.log(clickModal);
displayModal(clickModal);
});
'Language > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๊ฐํน๊ฐ๋ค ํท๊ฐ๋ฆด ์ ์๋ ๋ฌธ์ ๋ค ! - ๋ฌธ์ ์ํ ์ค๋ต ํ์ด (1) | 2025.01.16 |
|---|---|
| [๐ฆ] ์๋~ ์ง๋๋ฒจ๋ก ์๋ ค๋๋ฆด๊ฒ์! (1) - promise (0) | 2025.01.16 |
| [๐ฆ] ๋ชจ๋ฌ์ฐฝ ์ฌ๋ฌ ์ถ๊ฐ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ (0) | 2025.01.15 |
| [๐ฆ] text ์ผํ์ ๋น๊ต - textContent / innerText / innerHTML (0) | 2025.01.12 |
| [๐ฆ] ํจ์์ return (0) | 2025.01.11 |