ํฌ์ผ๋ชฌ ๋๊ฐ์์ ์ค๊ฐ์ ์์นํ ํฌ์ผ๋ชฌ์ ์ญ์ ํ ๋ ์ ํ ์ธ๋ฑ์ค(selectedIdx)๊ฐ ๋ถ์ ์ ํ๊ฒ ๊ฐ์ํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
const deletePokemon = (id) => {
setSelectedPokemon(prev => {
const filtered = prev.filter(pokemon => pokemon.id !== id);
while (filtered.length < 6) {
filtered.push("");
}
return filtered;
});
// ๋ฌด์กฐ๊ฑด selectedIdx ๊ฐ์
setSelectedIdx(prev => Math.max(prev - 1, 0));
};
์์ ์ํฉ:
// selectedIdx๊ฐ 2์ผ ๋
['A', 'B', '', 'D', '', '']
// 'D'(์ธ๋ฑ์ค 3)๋ฅผ ์ญ์ ํ๋ฉด
['A', 'B', '', '', '', '']
// selectedIdx๊ฐ 1์ด ๋์ด๋ฒ๋ฆผ (์๋ชป๋ ๋์)
const deletePokemon = (id) => {
const deleteIdx = selectedPokemon.findIndex(pokemon => pokemon.id === id);
setSelectedPokemon(prev => {
const filtered = prev.filter(pokemon => pokemon.id !== id);
while (filtered.length < 6) {
filtered.push("");
}
return filtered;
});
// ์ญ์ ์์น๊ฐ ํ์ฌ ์ ํ ์์น๋ณด๋ค ์์ ์์ ๋๋ง ์ธ๋ฑ์ค ๊ฐ์
if (deleteIdx < selectedIdx) {
setSelectedIdx(prev => prev - 1);
}
};
// ์ญ์ ํ ๋น ๊ฐ ์ฑ์ฐ๊ธฐ๋ฅผ ์ด๋ ๊ฒ๋ ๊ฐ๋ฅ
const newArray = [...filtered, ...Array(6 - filtered.length).fill("")];
// ๋๋ splice๋ฅผ ํ์ฉํ ๋ฐฉ๋ฒ
const newArray = [...prev];
newArray.splice(deleteIdx, 1);
newArray.push("");