私は配列を持っており、配列内の特定の整数の合計を取ることができます。常に最初の2、最初の3、または最初の4要素になるので、最初の整数と最後の整数を取ることはありません。配列の一部ではなく、すべての整数を取る方法
私はこのコードを試してみましたが、それは、アレイ内のすべての整数を合計する前にそれを停止する方法を見つけることができません。
let x = array.reduce(0, +)
私は配列を持っており、配列内の特定の整数の合計を取ることができます。常に最初の2、最初の3、または最初の4要素になるので、最初の整数と最後の整数を取ることはありません。配列の一部ではなく、すべての整数を取る方法
私はこのコードを試してみましたが、それは、アレイ内のすべての整数を合計する前にそれを停止する方法を見つけることができません。
let x = array.reduce(0, +)
することができますprefix
メソッドを使用します。
let nums = [1, 2, 3, 4, 5]
let sum = nums.prefix(3).reduce(0, +)
print(sum) // 6
あなたは
nums.count
より大きい値を接頭辞に渡した場合、プレフィックスは自動的に全体の配列を返します。ここで
nums.prefix(10).reduce(0, +) // 15
は、アレイをスライスしてみてください。
// array[lowerBound..<upperBound] ignore upperBound
// array[lowerBound...upperBound] include upperBound
// Examples:
// Change 2 for the starting index you want to include
array[2..<array.count].reduce(0,+)
array[0..<array.count-2].reduce(0,+)
// Be careful with upper/lower bounds
与えられたインデックス間Int
の配列の要素を合計する関数は(包括的、インデックス0から開始)である:
let numbers = [1,2,3,4,5,6,7,8,9,10]
func sumUpRange(numbers:[Int], from:Int, to:Int)->Int{
return numbers.enumerated().filter({ index, num in index >= from && index <= to}).map{$0.1}.reduce(0,+)
}
sumUpRange(numbers: numbers, from: 1, to: 3) //output is 2+3+4=9
が、これは素晴らしい仕事をありがとう! – StefWG