๊ณ ์ฐจํจ์
map ํจ์
- map ํจ์๋ ์ปฌ๋ ์ ๋ด๋ถ์ ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ๋ณํ(transform)ํ์ฌ ์๋ก์ด ์ปฌ๋ ์ ๋ฅผ ์์ฑํ๋ค.
- ๊ธฐ์กด์ ์ปฌ๋ ์ ์ ์์์ ๋ํด ์ ์ํ ์ต๋ช ํจ์๋ก ๋งคํํ ๊ฒฐ๊ณผ๋ฅผ ์๋ก์ด ์ปฌ๋ ์ ์ผ๋ก ๋ฐํํ๋ค.
// for ๋ฌธ์ผ๋ก ๊ตฌํ
let num = ["1", "2", "3", "4", "5"]
var numberArray: [Int] = []
for index in num { // num์ด๋ผ๋ ๊ฒ์ ๋ฐ๋ณต๋ฌธ์ ๋๋ ค์ ๊ฐ๊ฐ์ ์์๋ฅผ index๋ผ๋ ๋ณ์์ ๋ฃ์ด์ค
if let changeToInt = Int(index) {
numberArray.append(changeToInt)
}
}
print(numberArray)
// [1, 2, 3, 4, 5]
// map์ผ๋ก ๊ตฌํ
let stringArray = ["1", "2", "3", "4", "5"]
numberArray = stringArray.map {
if let changeToInt = Int($0) { // $0 ์ด๋ฉด ๊ฐ๊ฐ ํ๋์ฉ ๋ค์ด์ด
return changeToInt
}
return 0
}
/*
$0์ $1
{ } ๋ฅผ ์ต๋ช
ํจ์์ธ ํด๋ก์ ๋ผ๊ณ ํ๋ค.
ํด๋ก์ ์ ๋งค๊ฐ๋ณ์ ์ด๋ฆ์ด ํ์ํ์ง ์์ ๊ฒฝ์ฐ ๋จ์ถ ์ธ์ ์ด๋ฆ์ ํ์ฉํ ์ ์๋ค.($0, $1)
๋จ์ถ ์ธ์์ด๋ฆ์ ์์๋๋ก $0 , $1 , $2, $3 ...์ผ๋ก ํํํ๋ค. (์ด๋ ๊ฒ ์ฐ๋ ๊ฒ๋ณด๋ค ์ง์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฐ๊ณ in ํค์๋๋ฅผ ์ฐ๋๊ฒ ๊ฐ๋
์ฑ์ด ์ข๋ค)
$0 ์ ์ฒซ๋ฒ์งธ ์ธ์, $1์ ๋๋ฒ์งธ ์ธ์๋ฅผ ๋ปํฉ๋๋ค.
*/
print(numberArray)
// [1, 2, 3, 4, 5]
filter ํจ์
- ๊ธฐ์กด ์ปจํ ์ด๋์ ์์ ์ค ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฐ์ ๋ํด ์๋ก์ด ์ปจํ ์ด๋๋ฅผ ๋ง๋ค์ด ๋ฐํํ๋ค.
// for ๋ฌธ์ผ๋ก ๊ตฌํ
// numbers์์ ์ง์๋ง ์ถ์ถํ๊ธฐ
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
var evenNumbers: [Int] = []
for number in numbers {
if number % 2 == 0 {
evenNumbers.append(number) // number๋ฅผ evenNumbers์ ๋ด์์ฃผ๋ฉด ๋๋ค.
}
}
print(evenNumbers)
// [2, 4, 6, 8]
// filter๋ก ๊ตฌํ
// numbers์์ ์ง์๋ง ์ถ์ถํ๊ธฐ
let numbers1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
let evenNumbers2 = numbers1.filter { $0 % 2 == 0 }
print(evenNumbers2)
// [2, 4, 6, 8]
reduce ํจ์
- ๊ธฐ์กด์ ์ปจํ ์ด๋์ ์์์ ๋ํด ์ ์ํ ํด๋ก์ ๋ก ๋งคํํ ๊ฒฐ๊ณผ๋ฅผ ์๋ก์ด ์ปจํ ์ด๋๋ก ๋ฐํํ๋ค.
// for ๋ฌธ์ผ๋ก ๊ตฌํ
// ๊ฐ ์์์ ํฉ ๊ตฌํ๊ธฐ
let numbers2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
var sum = 0 // ์ด๊ธฐ๊ฐ์ 0์ผ๋ก ์ค์
for number in numbers2 {
sum += number
}
print(sum)
// 55
// reduce๋ก ๊ตฌํ
// ํํ์1
// ๊ฐ ์์์ ํฉ ๊ตฌํ๊ธฐ
let numbers3 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
let sum1 = numbers3.reduce(0, +)
print(sum1)
// 55
//ํํ์2
// ๊ฐ ์์์ ํฉ ๊ตฌํ๊ธฐ
let numbers4 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
let sum2 = numbers4.reduce(0) { $0 + $1 } // ์ฒ์์ $0์๋ ์ด๊ธฐ๊ฐ 0, $1์๋ 1 ๊ทธ๋์ ๋๊ฐ ๊ฐ ๋ํ๋ฉด 1์ด๋ค. ๊ทธ 1์ด reduce()์๋ฆฌ์ ๋ค์ด๊ฐ๊ณ ๋ฐ๋ณตํ๋ค.
print(sum2)
// 55
'๐ Today I Learned > Swift ๋ฌธ๋ฒ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] ARC์ ๋ฉ๋ชจ๋ฆฌ ๋์ (0) | 2023.12.13 |
---|---|
[Swift] ์์ธ์ฒ๋ฆฌ (0) | 2023.12.12 |
[Swift] ํด๋ก์ (0) | 2023.12.11 |
[Swift] ์ ๊ทผ ์ ํ์ (0) | 2023.12.11 |
[Swift] ํ์ ์บ์คํ (0) | 2023.12.11 |