์๋์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ฐ์๋ค.
* ์๋ ๋ด์ฉ์ ๊ตฌํํ์ธ์
1. arr ๋ฐฐ์ด์ start ์ธ๋ฑ์ค๋ถํฐ deleteCount๋งํผ ์์๋ฅผ ์ ๊ฑฐํ ๋ค,
2. ๊ทธ ์๋ฆฌ์ items๋ฅผ ์ฝ์
ํ์ธ์.
3. ๋ฐ๋์ splice ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
4. ์๋ณธ ๋ฐฐ์ด arr๋ฅผ ์ง์ ์กฐ์ํ๊ณ , ์กฐ์๋ ๋ฐฐ์ด์ ๋ฐํํ์ธ์.
* @param {any[]} arr
* @param {number} start
* @param {number} deleteCount
* @param {...any} items
* @returns {any[]} ์กฐ์ ํ์ arr
๊ฐ๋จํ์ง!
function removeAndInsert(arr, start, deleteCount, ...items) {
return arr.splice(start,deleteCount,...items)
}
๋ผ๊ณ ์๊ฐํ๋ ๊ณผ๊ฑฐ์ ๋.
ํ ์คํธ๋ฅผ ํด๋ณธ ๊ฒฐ๊ณผ ์๊พธ ๋น๋ฐฐ์ด์ด ๋ฐํ๋๋ค.
์์ผ๊น? ๐ค
mdn๋ฌธ์๋ฅผ ํ์ธํด๋ดค๋ค.
splice() ๋ฉ์๋๋ ๋ฐฐ์ด์ ๊ธฐ์กด ์์๋ฅผ ์ญ์ ๋๋ ๊ต์ฒดํ๊ฑฐ๋ ์ ์์๋ฅผ ์ถ๊ฐํ์ฌ ๋ฐฐ์ด์ ๋ด์ฉ์ ๋ณ๊ฒฝํฉ๋๋ค.
๋ฐํ ๊ฐ :
์ ๊ฑฐํ ์์๋ฅผ ๋ด์ ๋ฐฐ์ด ํ๋์ ์์๋ง ์ ๊ฑฐํ ๊ฒฝ์ฐ ๊ธธ์ด๊ฐ 1์ธ ๋ฐฐ์ด์ ๋ฐํํฉ๋๋ค. ์๋ฌด ๊ฐ๋ ์ ๊ฑฐํ์ง ์์์ผ๋ฉด ๋น ๋ฐฐ์ด์ ๋ฐํํฉ๋๋ค.
์!! ์ ๊ฑฐํ ์์๋ฅผ ๋ด์์ ๋ฐํํ๋๊ตฌ๋.
๊ทธ์น ๊ธฐ์กด ๋ฐฐ์ด์ ๋ด์ฉ์ ๋ณ๊ฒฝํ๋๊น, ๋ด๊ฐ ์ง ์ฝ๋๋ ์ ๊ฑฐํ ์์๊ฐ ๋ด๊ฒจ์๊ฒ ๋ค.
์ํ๋ ๊ฒฐ๊ณผ๊ฐ์ ์ป์ผ๋ ค๋ฉด ๊ธฐ์กด์ ๋ฐฐ์ด์ ๋ฐํํด์ค์ผํ๋๊ตฌ๋.
function removeAndInsert(arr, start, deleteCount, ...items) {
arr.splice(start,deleteCount,...items);
return arr;
}
์ฝ๋๋ฅผ ์์ ํ์๋๋ ์ ๋์ํ์๋ค.
splice๋
- ๊ธฐ์กด ๋ฐฐ์ด์ ๊ฐ์ ๋ฐ๊พผ๋ค.
- ์ญ์ ํ ์์๋ฅผ ๋ฐํํ๋ค.
์ ๊ธฐ์ตํด๋์!