Apa cara termudah (terbaik) untuk menemukan jumlah array bilangan bulat dengan cepat? Saya memiliki array yang disebut banyak dan saya ingin tahu jumlah dari banyak.
228
Ini adalah metode termudah / terpendek yang dapat saya temukan.
Swift 3 dan Swift 4:
let multiples = [...]
let sum = multiples.reduce(0, +)
print("Sum of Array is : ", sum)
Swift 2:
let multiples = [...]
sum = multiples.reduce(0, combine: +)
Beberapa info lebih lanjut:
Ini menggunakan metode pengurangan Array (dokumentasi di sini ), yang memungkinkan Anda untuk "mengurangi koleksi elemen ke nilai tunggal dengan secara rekursif menerapkan penutupan yang disediakan". Kami memberikan 0 sebagai nilai awal, dan kemudian, pada dasarnya, penutupan { $0 + $1 }
. Tentu saja, kita dapat menyederhanakannya menjadi satu tanda plus, karena itulah cara Swift menggulung.
let totalSum = self.cheques.reduce(0) { $0 + $1.amount}
combine
. Seharusnyamultiples.reduce(0, combine: +)
.flatMap
di atasnya terlebih dahulu untuk meratakannya ke array dimensi tunggal.multiArray.flatMap{$0}.reduce(0, combine: +)
Cepat 3+ satu liner untuk menjumlahkan properti objek
Di mana poin adalah properti di scaleData objek kustom saya yang saya coba kurangi
sumber
Swift3 telah berubah menjadi:
sumber
Dalam Swift 4 Anda juga dapat membatasi elemen urutan ke protokol Numerik untuk mengembalikan jumlah semua elemen dalam urutan sebagai berikut
edit / perbarui:
Xcode 10.2 • Swift 5 atau lebih baru
Kita bisa membatasi elemen urutan ke protokol AdditiveArithmetic baru untuk mengembalikan jumlah semua elemen dalam koleksi
Xcode 11 • Swift 5.1 atau yang lebih baru
sumber
Ini juga berfungsi:
Hasilnya adalah: 55
sumber
Contoh Swift 4
sumber
Cepat 3
Jika Anda memiliki larik objek umum dan Anda ingin menjumlahkan beberapa properti objek, maka:
Meskipun bentuknya lebih pendek, sering kali Anda lebih suka siklus klasik:
sumber
Bagaimana dengan cara sederhana
// di mana n = jumlah elemen dalam array
sumber
var sum = 0 ; for n in multiples { sum += n }
meskipun saya akan menggunakan mengurangi.Solusi yang mungkin: tentukan operator awalan untuk itu. Seperti operator pengurangan "+ /" seperti pada APL (mis. GNU APL)
Sedikit pendekatan yang berbeda di sini.
Menggunakan protokol dan tipe generik memungkinkan kita untuk menggunakan operator ini pada tipe array Double, Float dan Int
gunakan seperti ini:
(diperbarui untuk Swift 2.2, diuji dalam Xcode Versi 7.3)
sumber
Swift 3.0
saya punya masalah yang sama, saya temukan di dokumentasi Apple solusi ini.
Tapi, dalam kasus saya, saya punya daftar objek, maka saya perlu mengubah nilai daftar saya:
ini bekerja untuk saya.
sumber
menggunakan ini untuk parameter bersarang
sumber
Sederhana saja ...
Keluaran:
sumber
Bagi saya, ini seperti menggunakan properti
sumber
Cepat 3
Dari semua opsi yang ditampilkan di sini, inilah yang bekerja untuk saya.
sumber
Untuk jumlah elemen dalam array Objek
sumber
ini pendekatan saya tentang ini. namun saya percaya bahwa solusi terbaik adalah jawaban dari nama pengguna pengguna tbd
sumber