Menu
CoddyTech

Reduce

Termasuk bagian Logika dan Alur dalam perjalanan Swift di Coddy. Pelajaran 25 dari 56.

reduce menggabungkan seluruh array menjadi satu nilai. Dengan fungsi ini, kamu bisa menjumlahkan, mengalikan, mencari nilai ekstrem, atau membuat string atau array baru dari banyak elemen.

let total = [1, 2, 3, 4].reduce(0) { acc, n in acc + n }
print(total)                       // 10

Argumen pertama adalah akumulator awal. Closure menerima akumulator yang terus diperbarui dan elemen berikutnya, lalu mengembalikan akumulator baru. Nilai akhir akumulator adalah hasilnya.

Untuk operator aritmetika, Swift menyediakan singkatan berbasis simbol:

[1, 2, 3, 4].reduce(0, +)              // 10
[1, 2, 3, 4].reduce(1, *)              // 24

reduce tidak harus mengembalikan angka. Akumulator bisa bertipe apa pun, kamu yang menentukan:

let sentence = ["hi", "there"].reduce("") { $0 + $1 + "!" }
print(sentence)                    // "hi!there!"
challenge icon

Tantangan

Mudah

Baca satu baris input: list bilangan bulat yang dipisahkan koma. Gunakan reduce untuk masing-masing, lalu cetak tiga baris:

  1. Jumlah
  2. Hasil kali
  3. Nilai maksimum (gunakan closure yang mengembalikan nilai yang lebih besar dari kedua argumen, jangan panggil .max())

Anggap setidaknya ada satu elemen. Untuk nilai maksimum, kamu dapat menggunakan nums[0] sebagai akumulator awal dan melakukan reduce pada sisa array.

Untuk input 3,7,2,8,4, output-nya adalah:

24
1344
8

Coba sendiri

let nums = readLine()!.components(separatedBy: ",").map { Int($0)! }

// TODO: hitung sum, product, dan max dengan reduce
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Playground Swift