JavaScript

[JavaScript] Array.prototype.splice()

Dana10 2025. 1. 16. 14:14

 ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋ฐ›์•˜๋‹ค.

* ์•„๋ž˜ ๋‚ด์šฉ์„ ๊ตฌํ˜„ํ•˜์„ธ์š”

 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๋Š”

  • ๊ธฐ์กด ๋ฐฐ์—ด์˜ ๊ฐ’์„ ๋ฐ”๊พผ๋‹ค.
  • ์‚ญ์ œํ•œ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์ž˜ ๊ธฐ์–ตํ•ด๋‘์ž!