Ребята всем привет. Кто может помочь сделать функцию короче


#1

Задание. Напишите функцию, которая получает на вход два массива с типом Int и возвращает true, если сумма чисел в первом массиве больше суммы чисел во втором массиве; иначе возвращает false.
Комментарий преподавателя: Нужно было использовать одну встроенную функцию, которая бы почитывала сумму массива. А потом ее два раза вызвать.
func trueOrFalse(a: [Int], b: [Int]) -> Bool{

var sumA = 0

var sumB = 0

for el in a{

    sumA += el

}

for el in b{

    sumB += el

}

return sumA > sumB

}

var a1 = [1, 0, 4, 5]

var b1 = [10, 21, 5, 0]

trueOrFalse(a: a1, b: b1)

Заранее спасибо! :blush:


#2

Так лучше видно код!

func trueOrFalse(a: [Int], b: [Int]) -> Bool {
var sumA = 0
var sumB = 0

for el in a {
    sumA += el
}

for el in b {
    sumB += el
}

return sumA > sumB
}

var a1 = [1, 0, 4, 5]

var b1 = [10, 21, 5, 0]

trueOrFalse(a: a1, b: b1)

#3

Почитайте про reduce


#4
func compareSumm(with array1: [Int], _ array2: [Int]) -> Bool {
    return array1.reduce(0, +) > array2.reduce(0, +)
}

let a1 = [1, 0, 4, 5]
let b1 = [10, 21, 5, 0]

compareSumm(with: a1, b1)

#5

Спасибо большое:slight_smile:


#6
extension Array where Element: FloatingPoint {     
    var sum: Element {         
        return self.reduce(0, +)     
    } 
}
  
[1, 3,45].sum > [2, 3, 4].sum