Method reduce
Termasuk bagian Logika dan Alur dalam perjalanan GDScript di Coddy. Pelajaran 62 dari 78.
reduce() menggabungkan semua elemen dalam sebuah array menjadi satu nilai: jumlah, hasil kali, elemen terbesar, sebuah kalimat.
var numbers = [1, 2, 3, 4]
var total = numbers.reduce(func(acc, n): return acc + n, 0)
print(total)10Fungsi ini membutuhkan dua argumen: sebuah fungsi dan nilai awal, yaitu 0. Fungsi tersebut menerima hasil sementara, yang disebut akumulator (acc), dan elemen berikutnya. Nilai yang dikembalikannya menjadi akumulator baru:
accdimulai dari00 + 1adalah1,1 + 2adalah3,3 + 3adalah6,6 + 4adalah10- setelah elemen terakhir,
reduce()mengembalikan akumulator:10
Untuk suatu hasil kali, mulai dari 1: numbers.reduce(func(acc, n): return acc * n, 1) adalah 24.
Tanpa nilai awal, elemen pertama menjadi nilai awal dan fungsi dijalankan mulai dari elemen kedua. Cara ini cocok untuk mencari elemen terbesar:
var biggest = [4, 9, 2].reduce(func(a, b): return a if a > b else b)
print(biggest) # 9Pada array kosong tanpa nilai awal, reduce() mengembalikan null, jadi berikan nilai awal jika array bisa kosong.
Accumulator dapat memiliki tipe apa pun. Dengan nilai awal "", ini membangun string dari huruf pertama:
var words = ["game", "over"]
print(words.reduce(func(acc, w): return acc + w[0], "")) # goTantangan
MudahProgram membaca satu baris bilangan bulat yang dipisahkan dengan koma dan menyimpannya dalam array numbers. Bagian ini sudah ditulis.
Gunakan reduce() untuk setiap operasi berikut, lalu cetak tiga baris:
- jumlah semua bilangan
- hasil kali semua bilangan
- bilangan terbesar (tulis perbandingannya di dalam lambda, jangan panggil
max())
Selalu ada setidaknya satu bilangan. Untuk input 3,7,2,8,4, output-nya adalah:
24
1344
8Coba sendiri
extends Node
func _ready():
var numbers := []
for part in OS.read_string_from_stdin().split(","):
numbers.append(int(part))
# Cetak jumlah, hasil kali, dan bilangan terbesar, masing-masing dengan reduce()
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Mendalami String
Method untuk StringMencari dalam StringMengganti dan Menghapus SpasiMemisahkan dan MenggabungkanUlasan: Memeriksa Nama Pengguna4Dictionary Bagian 2
Dictionary BersarangArray berisi DictionaryMenggabungkan DictionaryMenyalin DictionaryRangkuman: Penghitung Frekuensi10Fungsi Lanjutan
Mengembalikan Beberapa NilaiFungsi Lambda Bagian 1Fungsi Lambda Bagian 2Ringkasan: Mengurutkan dengan LambdaFungsi Rekursif Bagian 1Fungsi Rekursif Bagian 2Ringkasan: Menjumlahkan array Bersarang13Sistem Manajemen Inventaris
Ikhtisar ProyekTambahkan Barang2Pengambilan Keputusan Lanjutan
Pencocokan dengan VariabelGuard pada MatchPola arrayPola dictionaryPemeriksaan KeanggotaanUlasan: Parser Perintah5Aplikasi Buku Kontak
Tampilkan MenuTambah Kontak8Pengelola Data Siswa
Gambaran Umum ProyekTambah Siswa11Fungsi Tingkat Tinggi
Method mapMethod filterMethod reduceany dan allUlasan: Validator EmailUlasan: Pemroses Angka3Array Multidimensi
Dasar-Dasar Array 2DMengakses Elemen Array 2DNested Loop dengan Array 2DRangkuman: Array 2DArray Tidak BeraturanPola Umum Array 2DRangkuman: Papan Permainan6Set dengan Dictionary
Apa Itu Set?Dictionary sebagai SetMenambahkan dan MenghapusUnion dan IntersectionSelisih SetRangkuman: Menghapus DuplikatLatihan sendiri: Compiler GDScript online