Dseok의 실전 예제로 웹개발 한방에 끝내기

웹개발, 혼자 하려니 막막하고 힘드시죠? 저 또한 그렇습니다. 힘든 웹개발... 실전 예제를 통해 함께 공부해요!!!!😁📕

Javascript

[Dseok의 코딩스터디] JavaScript slice() 한방에 끝내기 | 개념 & 실전 예제 10가지

Dseok 2025. 3. 5. 14:23
반응형
SMALL

📌 slice()란?

JavaScript의 slice() 메서드는 배열(Array) 또는 문자열(String)에서 특정 부분을 추출하여 새로운 배열이나 문자열을 반환하는 메서드입니다.

✅ 기본 문법

array.slice(start, end);
string.slice(start, end);
  • start: 추출을 시작할 인덱스 (0부터 시작)
  • end: (옵션) 종료 인덱스 (이전 인덱스까지 포함, 해당 인덱스는 제외됨)
  • 원본 데이터는 변경되지 않음 (불변성 유지)

📌 slice()의 주요 활용 사례

  1. 배열에서 특정 요소 추출
  2. 문자열에서 특정 부분 가져오기
  3. 배열 복사 (얕은 복사)
  4. 마지막 몇 개의 요소 가져오기
  5. 페이지네이션 (데이터 나누기)
  6. 배열에서 특정 구간 삭제 (splice()와 비교)
  7. Immutable 방식으로 배열 조작하기
  8. 배열 역순 정렬 시 활용 (reverse()와 함께 사용)
  9. 비구조화 할당(Destructuring)과 조합
  10. React 또는 Frontend 개발에서 활용

📌 slice() 실전 예제 10가지

1️⃣ 배열에서 특정 요소 추출

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>slice() 예제</title>
</head>
<body>
  <script>
    const fruits = ["사과", "바나나", "오렌지", "포도", "수박"];
    const slicedFruits = fruits.slice(1, 4);
    console.log(slicedFruits); // ["바나나", "오렌지", "포도"]
  </script>
</body>
</html>

설명: slice(1, 4)1번 인덱스부터 4번 인덱스 직전(3번)까지 추출함.

 

2️⃣ 문자열에서 특정 부분 가져오기

<script>
  const str = "Hello, JavaScript!";
  console.log(str.slice(7, 17)); // "JavaScript"
</script>

설명: slice(7, 17)을 사용하여 "JavaScript" 부분을 추출함.

 

3️⃣ 배열 복사 (얕은 복사)

<script>
  const numbers = [1, 2, 3, 4, 5];
  const copiedNumbers = numbers.slice();
  console.log(copiedNumbers); // [1, 2, 3, 4, 5]
</script>

설명: slice()를 사용하면 원본 배열을 변경하지 않고 복사 가능.

 

4️⃣ 마지막 몇 개의 요소 가져오기

<script>
  const names = ["Alice", "Bob", "Charlie", "David", "Eve"];
  console.log(names.slice(-2)); // ["David", "Eve"]
</script>

설명: slice(-2)를 사용하면 배열의 마지막 2개 요소를 가져올 수 있음.

 

5️⃣ 페이지네이션 (데이터 나누기)

<script>
  const data = Array.from({ length: 100 }, (_, i) => i + 1);
  const pageSize = 10;
  const page = 3;
  const paginatedData = data.slice((page - 1) * pageSize, page * pageSize);
  console.log(paginatedData); // [21, 22, ..., 30]
</script>

설명: 페이지네이션을 구현할 때 slice()를 활용하여 특정 페이지의 데이터를 가져옴.

 

6️⃣ 배열에서 특정 구간 삭제 (splice()와 비교)

<script>
  const items = ["A", "B", "C", "D", "E"];
  console.log(items.slice(0, 2).concat(items.slice(3))); // ["A", "B", "D", "E"]
</script>

설명: slice()를 사용하여 특정 요소를 삭제할 수도 있음.

 

7️⃣ Immutable 방식으로 배열 조작하기

<script>
  const arr = [10, 20, 30, 40, 50];
  const newArr = [...arr.slice(0, 2), 25, ...arr.slice(2)];
  console.log(newArr); // [10, 20, 25, 30, 40, 50]
</script>

설명: slice()와 스프레드 연산자를 조합하여 불변성 유지하며 배열 수정.

 

8️⃣ 배열 역순 정렬 시 활용 (reverse()와 함께 사용)

<script>
  const numbers = [1, 2, 3, 4, 5];
  console.log(numbers.slice().reverse()); // [5, 4, 3, 2, 1]
</script>

설명: slice().reverse()를 사용하여 원본 배열을 변경하지 않고 역순 정렬.

 

9️⃣ 비구조화 할당(Destructuring)과 조합

<script>
  const list = ["A", "B", "C", "D"];
  const [first, ...rest] = list.slice(1);
  console.log(first); // "B"
  console.log(rest); // ["C", "D"]
</script>

설명: slice()와 비구조화 할당을 함께 사용하여 배열 분리 가능.

🔟 React 또는 Frontend 개발에서 활용

import { useState } from "react";

function PaginatedList({ items }) {
  const [page, setPage] = useState(1);
  const pageSize = 5;
  const paginatedItems = items.slice((page - 1) * pageSize, page * pageSize);

  return (
    <div>
      <ul>{paginatedItems.map(item => <li key={item}>{item}</li>)}</ul>
      <button onClick={() => setPage(page + 1)}>다음 페이지</button>
    </div>
  );
}

설명: React에서 slice()를 활용하여 페이지네이션 기능을 구현할 수 있음.

 

📌 마무리 🎯

🔑 slice() 핵심 정리

  • 배열 및 문자열에서 특정 부분을 추출하는 메서드
  • 불변성(immutable) 유지하며 데이터를 조작 가능
  • 페이지네이션, 필터링, 데이터 조작 등 다양한 활용 가능
  • React 및 Frontend 개발에서도 유용하게 사용

 

반응형
LIST