SW 개발/Vanilla JS

[JavaScript] λ°°μ—΄ μΈλ±μ‹±μœΌλ‘œ νŠΉμ • μ›μ†Œ 좜λ ₯/제거/μΆ”κ°€ν•˜κΈ°(slice, splice ν•¨μˆ˜)

DATA101 2021. 12. 1. 16:52
728x90
λ°˜μ‘ν˜•

πŸ’‘ λͺ©ν‘œ

JavaScriptμ—μ„œ λ°°μ—΄ 인덱싱을 톡해 μ›μ†Œλ₯Ό 좜λ ₯, 제거, μΆ”κ°€ν•˜λŠ” 방법에 λŒ€ν•΄ ν•™μŠ΅ν•œλ‹€.

1.  slice ν•¨μˆ˜: νŠΉμ • ꡬ간 인덱슀의 μ›μ†Œ λ°˜ν™˜

ν•¨μˆ˜ μ›ν˜•

λ°°μ—΄.slice(μ‹œμž‘ 인덱슀, 끝 인덱슀)

slice ν•¨μˆ˜λŠ” νŠΉμ • κ΅¬κ°„μ˜ μΈλ±μŠ€μ— ν•΄λ‹Ήν•˜λŠ” μ›μ†Œλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

2개의 μ •μˆ˜ν˜• λ§€κ°œλ³€μˆ˜λ₯Ό μ „λ‹¬ν•˜λŠ”λ° 각각 μ‹œμž‘ 인덱슀, 끝 μΈλ±μŠ€μž…λ‹ˆλ‹€.

특히, 끝점 μΈλ±μŠ€λŠ” ν¬ν•¨ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ—,

μ›μ†Œλ₯Ό μΆ”μΆœν•˜λŠ” ꡬ간을 μˆ˜ν•™μ μœΌλ‘œ ν‘œν˜„ν•˜λ©΄ [μ‹œμž‘μ , 끝점)μž…λ‹ˆλ‹€.

예제 μ½”λ“œ

let arr1 = [1, 2, 3, 4, 5, 6, 7, 8];
let arrSlice = arr1.slice(2, 6); // [start, end) ꡬ간 인덱싱
console.log(arrSlice); // 3, 4, 5, 6

μœ„μ˜ μ˜ˆμ œμ—μ„œ μ‹œμž‘μ μ€ 2이고 끝점은 6μ΄λ―€λ‘œ 2λ²ˆμ§ΈλΆ€ν„° 5번째 μ›μ†Œλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

2.  splice ν•¨μˆ˜: νŠΉμ • ꡬ간 인덱슀의 μ›μ†Œ μ‚­μ œ/μΆ”κ°€

ν•¨μˆ˜ μ›ν˜•

λ°°μ—΄.splice(μ‹œμž‘ 인덱슀, μ‚­μ œν•  데이터 개수, μΆ”κ°€ν•  μ›μ†Œ λ‚˜μ—΄)

splice ν•¨μˆ˜λŠ” νŠΉμ • μΈλ±μŠ€μ—μ„œλΆ€ν„° μ‹œμž‘ν•˜μ—¬ μ›μ†Œ N개λ₯Ό μ‚­μ œν•˜κ±°λ‚˜ μ‚¬μš©μž μž„μ˜λŒ€λ‘œ μ›μ†Œλ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€.

μ•„λž˜ 예제 μ½”λ“œλ₯Ό 보면 μ§κ΄€μ μœΌλ‘œ ν•¨μˆ˜ μ‚¬μš©λ°©λ²•μ„ μ΄ν•΄ν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.

예제 μ½”λ“œ 1

let arr2 = [1, 2, 3];
arr2.splice(1, 0, 4, 5); // μ‹œμž‘ 인덱슀: 1, μ›μ†Œ μ‚­μ œ 개수: 0, 데이터 [4, 5] μΆ”κ°€
console.log(arr2); // [1, 4, 5, 2, 3]

예제 μ½”λ“œ 2

let arr3 = [10, 20, 30, 40, 50];
arr3.splice(2, 2, 6, 7, 88, 99, 77); // μ‹œμž‘ 인덱슀: 2, μ›μ†Œ μ‚­μ œ 개수: 2, 데이터 [6, 7, 88, 99, 77] μΆ”κ°€
console.log(arr3); // [10, 20, 6, 7, 88, 99, 77, 50]

ν¬μŠ€νŒ… λ‚΄μš©μ— 였λ₯˜κ°€ μžˆλ‹€λ©΄ μ•„λž˜μ— λŒ“κΈ€ λ‚¨κ²¨μ£Όμ„Έμš”!

그럼 μ˜€λŠ˜λ„ 즐겁고 λ©‹μ§„ λ§Œλ“œμ‹œκΈΈ λ°”λžλ‹ˆλ‹€.

κ³ λ§™μŠ΅λ‹ˆλ‹€ :-)

728x90
λ°˜μ‘ν˜•