๐Ÿ“ŒLanguage/JavaScript

TIL) ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ splice ์™€ slice ์ฐจ์ด ์‰ฌ์šด ์„ค๋ช…

hellohailie 2022. 5. 10. 15:59

 

splice ์™€ slice ์ฐจ์ด =>
splice๋Š” ์›๋ณธ ๋ฐฐ์—ด์„ ๋ณ€๊ฒฝํ•˜๊ณ , slice๋Š” ์›๋ณธ ๋ฐฐ์—ด์€ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค. 

 

 

 

  • ๋ฐฐ์—ด์˜ ์ค‘๊ฐ„์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•˜๊ธฐ .splice(_, _, _)

push, pop, unshift, shift ๋งค์„œ๋“œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ชจ๋‘ ์›๋ณธ ๋ฐฐ์—ด์„ ์ง์ ‘ ๋ณ€๊ฒฝํ•˜๋Š” ๋งค์„œ๋“œ์ด๋‹ค.

 

๋งค๊ฐœ๋ณ€์ˆ˜๋Š” 3๊ฐœ ๊ฐ–๋Š”๋‹ค. 

โœ”๏ธ start: ์›๋ณธ ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์‹œ์ž‘ํ•  ์ธ๋ฑ์Šค. start๋งŒ ์ง€์ •ํ•˜๋ฉด ์›๋ณธ ๋ฐฐ์—ด์˜ start๋ถ€ํ„ฐ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค. 

 ์Œ์ˆ˜์ธ ๊ฒฝ์šฐ, ๋ฐฐ์—ด์˜ ๋์—์„œ์˜ ์ธ๋ฑ์Šค๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. (-1: ๋งˆ์ง€๋ง‰ ์š”์†Œ, -n: ๋งˆ์ง€๋ง‰์—์„œ n๋ฒˆ์งธ ์š”์†Œ) ํ•„์ˆ˜๋งค๊ฐœ๋ณ€์ˆ˜

โœ”๏ธ deleteCount: ์ œ๊ฑฐํ•  ์š”์†Œ์˜ ๊ฐœ์ˆ˜, 0์ธ๊ฒฝ์šฐ ์ œ๊ฑฐ๋˜์ง€ ์•Š๋Š”๋‹ค. ์˜ต์…˜๋งค๊ฐœ๋ณ€์ˆ˜

โœ”๏ธ items: ์ œ๊ฑฐํ•œ ์œ„์น˜์— ์‚ฝ์ž…ํ•  ์š”์†Œ. ์˜ต์…˜๋งค๊ฐœ๋ณ€์ˆ˜

 

 

const arr = [1,2,3,4];
const result = arr.splice(1,2,20,30); 
// ์›๋ณธ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค 1๋ถ€ํ„ฐ 2๊ฐœ์˜ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๊ทธ ์ž๋ฆฌ์— ์ƒˆ๋กœ์šด ์š”์†Œ 20๊ณผ 30์„ ์‚ฝ์ž…ํ•œ๋‹ค. 
console.log(result); // [2,3] // ์ œ๊ฑฐํ•œ ์š”์†Œ
console.log(arr); // [1,20,30,4] // ์•„ํ•˜ splice ๋งค์„œ๋“œ๋Š” ์›๋ณธ ๋ฐฐ์—ด์„ ์ง์ ‘ ๋ณ€๊ฒฝํ•˜๋„ค!

 

 


  • ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋œ ๋ฒ”์œ„์˜ ์š”์†Œ๋“ค์„ ๋ณต์‚ฌํ•ด์„œ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•˜๊ธฐ .slice(_, _)

slice๋Š” ์›๋ณธ ๋ฐฐ์—ด์€ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค. 

 

๋งค๊ฐœ๋ณ€์ˆ˜๋Š” 2๊ฐœ ๊ฐ–๋Š”๋‹ค.

โœ”๏ธ start: ๋ณต์‚ฌ๋ฅผ ์‹œ์ž‘ํ•  ์ธ๋ฑ์Šค. ์Œ์ˆ˜์ธ ๊ฒฝ์šฐ ๋ฐฐ์—ด์˜ ๋์—์„œ์˜ ์ธ๋ฑ์Šค๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. (-2: ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ๋‘ ๊ฐœ ์š”์†Œ ๋ณต์‚ฌํ•ด์„œ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜)

โœ”๏ธ end: ๋ณต์‚ฌ๋ฅผ ์ข…๋ฃŒํ•  ์ธ๋ฑ์Šค. ์ด ์ธ๋ฑ์Šค๋Š” ๋ณต์‚ฌ ์•ˆ๋˜๊ณ , ๋ฐ”๋กœ ์•ž๊นŒ์ง€ ๋ณต์‚ฌ๋œ๋‹ค. ์ƒ๋žต์‹œ ๋๊นŒ์ง€ ์˜ต์…˜๋งค๊ฐœ๋ณ€์ˆ˜

 

 

const arr = [1,2,3];

arr.slice(1,2); // [2] // arr[1]๋ถ€ํ„ฐ arr[2]๋ฏธ๋งŒ๊นŒ์ง€ ๋ณต์‚ฌํ•ด์„œ ๋ฐ˜ํ™˜
console.log(arr); // [1,2,3] // ์›๋ณธ ๋ฐฐ์—ด์€ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค.