FE/JavaScript

[JS] ๋ฐฐ์—ด - splice() , slice() ์ฐจ์ด

mandelina 2022. 5. 3. 16:29

๐Ÿš€ splice()

- ๋ฐฐ์—ด ๋‚ด์— ์ƒˆ๋กœ์šด ์š”์†Œ์˜ ์ถ”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

- ๋ฐฐ์—ด ๋‚ด ํŠน์ • ์š”์†Œ๋ฅผ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์žˆ๋‹ค.

- ์›๋ณธ ๋ฐฐ์—ด์ด ๋ณ€๊ฒฝ๋œ๋‹ค.

 

[์‚ฌ์šฉ๋ฒ•]

๋ฐฐ์—ด.splice(์š”์†Œ๋ฅผ ์œ„์น˜์‹œํ‚ค๊ณ ์ž ํ•˜๋Š” ์ธ๋ฑ์Šค, ์ œ๊ฑฐํ•  ์š”์†Œ์˜ ๊ฐœ์ˆ˜, ๋ฐฐ์—ด์— ์ถ”๊ฐ€ํ•  ์š”์†Œ)

 

๋งŒ์•ฝ ๋ฐฐ์—ด ๋‚ด ์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ์ถ”๊ฐ€๋งŒ ํ•˜๊ณ ์‹ถ๋‹ค๋ฉด 2๋ฒˆ์งธ ์ธ๋ฑ์Šค์— 0์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

 

const cafe = ['coffee', 'cake', 'tea', 'cookie']
cafe.splice(1, 0, 'bread')
cafe

//1๋ฒˆ์งธ ์ธ๋ฑ์Šค์— bread๋ฅผ ์ถ”๊ฐ€ํ•œ cafe ๋ฐฐ์—ด
//expected output: ['coffee', 'bread', 'cake', 'tea', 'cookie']

 

 

ํŠน์ •์š”์†Œ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

๋ฐฐ์—ด.splice(์š”์†Œ๋ฅผ ์œ„์น˜์‹œํ‚ค๊ณ ์ž ํ•˜๋Š” ์ธ๋ฑ์Šค, ์ œ๊ฑฐํ•  ์š”์†Œ์˜ ๊ฐœ์ˆ˜)
const cafe = ['coffee', 'cake', 'tea', 'cookie']
cafe.splice(1, 2)

cafe

//1๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ 2๊ฐœ๋ฅผ ์‚ญ์ œํ•œ๋‹ค. ์ฆ‰ cake๊ณผ tea๊ฐ€ ์‚ญ์ œ๋œ๋‹ค.
//expected output: ['coffee', 'cookie']

 

 

๐Ÿš€ slice()

- ๋ฐฐ์—ด ์ผ๋ถ€๋ถ„์„ ์ž˜๋ผ์„œ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

- ์›๋ณธ์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์›๋ณธ ๋ฐฐ์—ด ์š”์†Œ์˜ ์–•์€ ๋ณต์‚ฌ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

๋ฐฐ์—ด.slice(์ž˜๋ผ๋‚ผ ๋ฐฐ์—ด์˜ ์‹œ์ž‘์ธ๋ฑ์Šค, ์ž˜๋ผ๋‚ผ๋ฐฐ์—ด์˜ ์ข…๋ฃŒ์ธ๋ฑ์Šค)

 

* ์ฃผ์˜ : ์ข…๋ฃŒ์ธ๋ฑ์Šค-1 ๊นŒ์ง€ ์ž˜๋ผ๋‚ธ๋‹ค. ์ฆ‰, ์ข…๋ฃŒ์ธ๋ฑ์Šค ๋ถ€๋ถ„์˜ ๊ฐ’์€ ์ž˜๋ผ๋‚ผ ๋ฐฐ์—ด์— ํฌํ•จ๋˜์ง€ ์•Š๋Š”๋‹ค.

 

 

const cafe = ['coffee', 'cake', 'tea', 'cookie']

cafe.slice(1, 3);
//1๋ฒˆ์งธ์ธ๋ฑ์Šค๋ถ€ํ„ฐ 2๋ฒˆ์งธ์ธ๋ฑ์Šค๊นŒ์ง€ ์ž˜๋ผ์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
//expected output: ['cake', 'tea']


cafe.slice(2);
//2๋ฒˆ์งธ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ž˜๋ผ์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค. (์ข…๋ฃŒ์ธ๋ฑ์Šค ์ƒ๋žต์‹œ ๋๊นŒ์ง€ ๋ฐ˜ํ™˜)
//expected output: ['tea', 'cookie']


cafe.slice(-2, -1);
//๋งจ์˜ค๋ฅธ์ชฝ๋ถ€ํ„ฐ-1์ด๋ผ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. -2: tea , -1 : cookie์ด๋‹ค.
//ํ•˜์ง€๋งŒ ์ข…๋ฃŒ์ธ๋ฑ์Šค๋Š” ํฌํ•จํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ tea๋งŒ ์ถœ๋ ฅํ•œ๋‹ค.
//expected output: ['tea']


cafe.slice(0, -2);
//0๋ฒˆ์งธ์ธ๋ฑ์Šค๋ถ€ํ„ฐ -2๋ฒˆ์งธ์ธ๋ฑ์Šค ์ „๊นŒ์ง€ ์ž˜๋ผ์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
//expected output: ['coffee', 'cake']

 

* ์ฃผ์˜ : ์–•์€ ๋ณต์‚ฌ์˜ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋กœ ๋ณ€์ˆ˜์— ์ €์žฅํ•ด๋†“์•„์•ผํ•œ๋‹ค.

 

[์˜ˆ์‹œ]


์›๋ณธ ๋ฐฐ์—ด์€ ๋ณ€ํ•จ์ด ์—†๋‹ค๋Š”๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

 

 


 

 

โ“ โ”๊ทธ๋ ‡๋‹ค๋ฉด splice()์™€ slice()์˜ ์ฐจ์ด์ ์€ โ“ โ”

 

splice()๋Š” ์›๋ณธ๋ฐฐ์—ด์„ ๋ณ€๊ฒฝํ•˜๊ณ  ๊ฐ’์„ ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ,

slice()๋Š” ์›๋ณธ๋ฐฐ์—ด์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ๋ฐฐ์—ด ์ผ๋ถ€๋ถ„์„ ์ž˜๋ผ๋‚ผ์ˆ˜๋งŒ ์žˆ๋‹ค.