ν”„λ‘œκ·Έλž˜λ°/JavaScript

[JavaScript] λ°°μ—΄ λ©”μ„œλ“œ slice() vs splice() 차이점

μš©λ‡½ 2023. 2. 16. 21:30
λ°˜μ‘ν˜•

[JavaScript] λ°°μ—΄ λ©”μ„œλ“œ slice() vs splice() 차이점

πŸ’‘ slice() λ°°μ—΄ λ©”μ„œλ“œ

slice() λ©”μ„œλ“œλŠ” λ°°μ—΄μ˜ 볡사본을 λ§Œλ“€κ±°λ‚˜ λ°°μ—΄μ˜ 일뢀λ₯Ό λ°˜ν™˜ν•˜λŠ” 데 μ‚¬μš©ν•  수 μžˆλ‹€.

slice() λ©”μ„œλ“œλŠ” μ›λž˜ 배열을 λ³€κ²½ν•˜μ§€ μ•Šκ³  λŒ€μ‹  μ–•μ€ 볡사본을 μƒμ„±ν•œλ‹€λŠ” 점에 μœ μ˜ν•΄μ•Ό ν•œλ‹€.

κΈ°λ³Έ ꡬ문은 λ‹€μŒκ³Ό κ°™λ‹€.

slice(optional start parameter, optional end parameter)

이 μ˜ˆμ‹œμ—μ„œλŠ” 과일 λͺ©λ‘μ„ λ§Œλ“€μ—ˆλ‹€.

const fruits = ['apple', 'banana', 'mango', 'melon'];

slice() λ©”μ„œλ“œλ₯Ό λ§€κ°œλ³€μˆ˜ 없이 μ‚¬μš©ν•˜λŠ” 방법 β“

slice() λ©”μ„œλ“œλ₯Ό ν™œμš©ν•΄ ν•΄λ‹Ή λ°°μ—΄μ˜ 얕은 볡사본을 λ§Œλ“€ 수 μžˆλ‹€.

console.log(fruits.slice()); // ['apple', 'banana', 'mango', 'melon']

start λ§€κ°œλ³€μˆ˜λ₯Ό μ‚¬μš©ν•΄μ„œ slice() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜λŠ” 방법 β“

μ˜΅μ…˜μœΌλ‘œ 쀄 수 μžˆλŠ” start λ§€κ°œλ³€μˆ˜λ₯Ό μ‚¬μš©ν•΄μ„œ λ°°μ—΄μ—μ„œ μš”μ†Œλ₯Ό μ„ νƒν•˜κΈ° μœ„ν•œ μ‹œμž‘ μœ„μΉ˜λ₯Ό μ„€μ •ν•  수 μžˆλ‹€.

이 μ˜ˆμ‹œμ—μ„œλŠ” index 2λ₯Ό μ‹œμž‘ μœ„μΉ˜λ‘œ μ„€μ •ν•΄μ„œ index 2λΆ€ν„° λ§ˆμ§€λ§‰ indexκΉŒμ§€ μ„ νƒν•΄μ„œ μƒˆ λ°°μ—΄λ‘œ λ°˜ν™˜ν•œλ‹€.

const newFruits = fruits.slice(2);

console.log(newFruits); // ['mango', 'melon']

μ›λž˜ 배열은 μˆ˜μ •λ˜μ§€ μ•ŠλŠ” 것을 λ³Ό 수 μžˆλ‹€.

const fruits = ['apple', 'banana', 'mango', 'melon'];

const newFruits = fruits.slice(2);

console.log('μ›λž˜ 과일: ', fruits); // μ›λž˜ 과일: ['apple', 'banana', 'mango', 'melon']
console.log('μƒˆλ‘œμš΄ 과일: ', newFruits); // μƒˆλ‘œμš΄ 과일: ['mango', 'melon']

λ°°μ—΄ λμ—μ„œ λΆ€ν„° μ„ νƒν•˜κ³  μ‹Άλ‹€λ©΄ 음수 indexλ₯Ό μ‚¬μš©ν•  μˆ˜λ„ μžˆλ‹€.

const newFruits = fruits.slice(-1);

console.log(newFruits); // ['melon']

start λ§€κ°œλ³€μˆ˜κ°€ λ°°μ—΄μ˜ λ§ˆμ§€λ§‰ index 보닀 크면 빈 배열이 λ°˜ν™˜λœλ‹€.

const newFruits = fruits.slice(4);

console.log(newFruits); // []

start와 end λ§€κ°œλ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ slice() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜λŠ” 방법 β“

end μœ„μΉ˜κ°€ μ§€μ •λœ 경우 slice() λ©”μ„œλ“œλŠ” start μœ„μΉ˜μ—μ„œ end μœ„μΉ˜κΉŒμ§€ μš”μ†Œλ₯Ό μΆ”μΆœν•œλ‹€.

end μœ„μΉ˜λŠ” μƒˆλ‘œμš΄ λ°°μ—΄μ˜ μΆ”μΆœλœ μš”μ†Œμ— ν¬ν•¨λ˜μ§€ μ•ŠλŠ”λ‹€.

const fruits = ['apple', 'banana', 'mango', 'melon'];

const newFruits = fruits.slice(1, 3);

console.log(newFruits); // ['banana', 'mango'];

πŸ’‘ splice() λ°°μ—΄ λ©”μ„œλ“œ

slice() λ©”μ„œλ“œμ™€ 달리 splice() λ©”μ„œλ“œλŠ” μ›λž˜ λ°°μ—΄μ˜ λ‚΄μš©μ„ λ³€κ²½ν•œλ‹€.

splice() λ©”μ„œλ“œλŠ” κΈ°μ‘΄ λ°°μ—΄μ˜ μš”μ†Œλ₯Ό μΆ”κ°€ν•˜κ±°λ‚˜ μ œκ±°ν•˜λŠ” 데 μ‚¬μš©λ˜λ©° λ°˜ν™˜ 값은 λ°°μ—΄μ—μ„œ 제거된 ν•­λͺ©μ΄ λ°˜ν™˜λœλ‹€.

splice() λ©”μ„œλ“œμ˜ κΈ°λ³Έ ꡬ문은 λ‹€μŒκ³Ό κ°™λ‹€.

splice(start, optional delete count, optional items to add)

이 μ˜ˆμ‹œμ—λŠ” μš”μΌ ν•­λͺ©μ˜ 배열이 μžˆλ‹€.

const week = ['Mon', 'Tue', 'Wen', 'Thu', 'Fri'];

splice() λ©”μ„œλ“œ μ‚¬μš©ν•΄μ„œ μš”μ†Œλ₯Ό μΆ”κ°€ν•˜λŠ” 방법 β“

λ°°μ—΄μ˜ index 1에 λ‹€λ₯Έ μš”μΌμ„ μΆ”κ°€ν•˜λ €λ©΄ λ‹€μŒκ³Ό 같이 ν•  수 μžˆλ‹€.

week.splice(1, 0, 'Sat');

첫 번째 μˆ«μžλŠ” μ‹œμž‘ indexκ³ , 두 번째 μˆ«μžλŠ” μ‚­μ œ νšŸμˆ˜λ‹€.

아무 ν•­λͺ©λ„ μ‚­μ œν•˜μ§€ μ•ŠμœΌλ―€λ‘œ μ‚­μ œ νšŒμˆ˜λŠ” 0이닀.

const week = ['Mon', 'Tue', 'Wen', 'Thu', 'Fri'];

week.splice(1, 0, 'Sat');

console.log(week); // ['Mon', 'Sat', 'Tue', 'Wen', 'Thu', 'Fri'];

splice() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄μ„œ μš”μ†Œλ₯Ό μ œκ±°ν•˜λŠ” 방법 β“

이 μ˜ˆμ‹œμ—μ„œλŠ” λ°°μ—΄μ—μ„œ "Wen"을 μ œκ±°ν•˜λ €κ³  ν•œλ‹€. start 및 delete λ§€κ°œλ³€μˆ˜λ₯Ό μ‚¬μš©ν•΄μ„œ μ œκ±°ν•  수 μžˆλ‹€.

week.splice(2, 1);

숫자 2λŠ” μ‹œμž‘ μœ„μΉ˜μ΄κ³ , 숫자 1은 μ‚­μ œ 횟수λ₯Ό λ‚˜νƒ€λ‚Έλ‹€. "Wen"은 index 2에 μœ„μΉ˜ν•΄ μžˆμœΌλ―€λ‘œ λ°°μ—΄μ—μ„œ μ œκ±°λœλ‹€.

const week = ['Mon', 'Tue', 'Wen', 'Thu', 'Fri'];

week.splice(2, 1);

console.log(week); // ['Mon', 'Tue', 'Thu', 'Fri'];

πŸ“• κ²°λ‘ 

slice()와splice() λ©”μ„œλ“œλŠ” μ„œλ‘œ λΉ„μŠ·ν•΄ 보일 수 μžˆμ§€λ§Œ λͺ‡ 가지 μ£Όμš” 차이점이 μžˆλ‹€.

slice() λ©”μ„œλ“œλŠ” λ°°μ—΄μ˜ 볡사본을 λ§Œλ“€κ±°λ‚˜ λ°°μ—΄μ˜ 일뢀λ₯Ό λ°˜ν™˜ν•˜λŠ” 데 μ‚¬μš©ν•  수 있고, μ›λž˜ 배열을 λ³€κ²½ν•˜μ§€ μ•Šκ³  λŒ€μ‹ , 얕은 볡사본을 μƒμ„±ν•œλ‹€.

splice() λ©”μ„œλ“œλŠ” μ›λž˜ λ°°μ—΄μ˜ λ‚΄μš©μ„ λ³€κ²½ν•˜κ³ , κΈ°μ‘΄ λ°°μ—΄μ˜ μš”μ†Œλ₯Ό μΆ”κ°€ν•˜κ±°λ‚˜ μ œκ±°ν•˜λŠ” 데 μ‚¬μš©λ˜λ©° λ°˜ν™˜ 값은 λ°°μ—΄μ—μ„œ 제거된 ν•­λͺ©μ΄ λœλ‹€.

λ°°μ—΄μ—μ„œ 아무것도 μ œκ±°λ˜μ§€ μ•Šμ€ 경우 λ°˜ν™˜ 값은 빈 배열이닀.

 

μ°Έκ³ 

https://www.freecodecamp.org/news/javascript-slice-and-splice-how-to-use-the-slice-and-splice-js-array-methods/

λ°˜μ‘ν˜•