배열 수정하기
Coddy Swift 여정의 기초 섹션에 포함된 레슨 — 86개 중 64번째.
배열은 그 내용을 변경할 수 있을 때 진정으로 유용해집니다. 배열을 수정하려면, let 대신 var를 사용하여 선언해야 합니다.
특정 인덱스에 새로운 값을 할당하여 기존 요소를 변경할 수 있습니다:
var colors = ["Red", "Green", "Blue"]
colors[1] = "Yellow"
print(colors) // ["Red", "Yellow", "Blue"]새로운 요소를 추가하려면 단일 항목에는 append 메서드를 사용하고, 여러 항목을 한 번에 추가하려면 += 연산자를 사용하세요:
var numbers = [1, 2, 3]
numbers.append(4)
print(numbers) // [1, 2, 3, 4]
numbers += [5, 6]
print(numbers) // [1, 2, 3, 4, 5, 6]특정 위치에 요소를 삽입하려면 insert 메서드를 사용하세요:
var fruits = ["Apple", "Orange"]
fruits.insert("Banana", at: 1)
print(fruits) // ["Apple", "Banana", "Orange"]요소를 제거하려면, 삭제하려는 인덱스와 함께 remove(at:)를 사용하세요:
var items = ["A", "B", "C", "D"]
items.remove(at: 2)
print(items) // ["A", "B", "D"]요소를 제거하면, 빈 자리를 채우기 위해 그 뒤의 모든 요소들이 이동한다는 점을 기억하세요.
챌린지
쉬움아이템 배열, 추가할 새 아이템, 그리고 삭제할 인덱스를 매개변수로 받아 수정된 배열을 반환하는 modifyInventory 함수를 작성하세요.
다음 작업을 순서대로 수행하세요:
- 첫 번째 요소를
"Updated"로 변경합니다. - 배열의 끝에 새 아이템을 추가합니다.
- 지정된 인덱스에 있는 요소를 제거합니다.
매개변수:
items([String]): 초기 아이템 배열newItem(String): 추가할 아이템removeIndex(Int): (아이템 추가 후) 제거할 요소의 인덱스
반환값: 모든 작업이 완료된 후의 수정된 배열 ([String])
예시: 만약 items가 ["A", "B", "C"]이고, newItem이 "D"이며, removeIndex가 2라면, 함수는 다음과 같이 동작해야 합니다:
- 첫 번째 요소 변경:
["Updated", "B", "C"] - "D" 추가:
["Updated", "B", "C", "D"] - 인덱스 2의 요소 제거:
["Updated", "B", "D"]
치트 시트
var로 선언된 배열은 수정할 수 있지만, let으로 선언된 배열은 불변입니다.
특정 인덱스에 새로운 값을 할당하여 요소를 변경합니다:
var colors = ["Red", "Green", "Blue"]
colors[1] = "Yellow" // ["Red", "Yellow", "Blue"]append를 사용하여 단일 요소를 추가합니다:
var numbers = [1, 2, 3]
numbers.append(4) // [1, 2, 3, 4]+=를 사용하여 여러 요소를 추가합니다:
numbers += [5, 6] // [1, 2, 3, 4, 5, 6]insert(_:at:)를 사용하여 특정 위치에 요소를 삽입합니다:
var fruits = ["Apple", "Orange"]
fruits.insert("Banana", at: 1) // ["Apple", "Banana", "Orange"]remove(at:)를 사용하여 특정 인덱스의 요소를 제거합니다:
var items = ["A", "B", "C", "D"]
items.remove(at: 2) // ["A", "B", "D"]요소가 제거되면, 뒤따르는 모든 요소가 빈 자리를 채우기 위해 앞으로 이동합니다.
직접 해보기
func modifyInventory(items: [String], newItem: String, removeIndex: Int) -> [String] {
// 여기에 코드를 작성하세요
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.