If you want to pass the same interest rate to all values, you can do:
class BankRate: CustomStringConvertible {
let amount: Int
let interestRate: Float
init(amount: Int, interestRate: Float){
self.amount = amount
self.interestRate = interestRate
}
var description: String {
return "amount: \(amount), rate: \(interestRate)"
}
}
let arr = [2, 5, 1, 4, 8, 4]
let bankRateArr = arr.map { BankRate(amount: $0, interestRate: 0.04) }
print(bankRateArr)
Output:
[amount: 2, rate: 0.04, amount: 5, rate: 0.04, amount: 1, rate: 0.04, amount: 4, rate: 0.04, amount: 8, rate: 0.04, amount: 4, rate: 0.04]
If you want each to have their own, you can do it with tuples:
let arr2 = [(2, 0.04), (5, 0.07), (1, 0.1), (4, 0.035), (8, 0.25), (4, 0.2)]
let bankRateArr2 = arr2.map { BankRate(amount: $0.0, interestRate: Float($0.1)) }
print(bankRateArr2)
Output:
[amount: 2, rate: 0.04, amount: 5, rate: 0.07, amount: 1, rate: 0.1, amount: 4, rate: 0.035, amount: 8, rate: 0.25, amount: 4, rate: 0.2]
And thanks to Martin R, the 2nd example can be shorted a bit as:
let arr3: [(Int, Float)] = [(2, 0.04), (5, 0.07), (1, 0.1), (4, 0.035), (8, 0.25), (4, 0.2)]
let bankRateArr3 = arr3.map(BankRate.init)
print(bankRateArr3)
amountandinterestRatewill both have the same value, your example is not gonna work. Of course with an array of tuples for instance it could easily work.arr? Are they the amounts? You could use map with a fixed rate and the amount from the array