Arrays 如何将数组元素相乘到下一个元素并在Swift中作为数组输出
我想把第一个元素乘以下一个,直到最后一个元素乘以第一个元素 例如:Arrays 如何将数组元素相乘到下一个元素并在Swift中作为数组输出,arrays,swift,Arrays,Swift,我想把第一个元素乘以下一个,直到最后一个元素乘以第一个元素 例如: 2*4,4*3,3*7,7*2 输出将是[8,12,21,14]嘿,试试这个,让你的输出: var numbers = [2, 4, 3, 7] var computed = numbers print(computed) 我不知道Swift语言,但算法非常简单,不依赖任何技术。试试这个: var numbers = [2, 4, 3, 7] numbers.enumerated().forEach { index, va
2*4,4*3,3*7,7*2
输出将是
[8,12,21,14]
嘿,试试这个,让你的输出:
var numbers = [2, 4, 3, 7]
var computed = numbers
print(computed)
我不知道Swift语言,但算法非常简单,不依赖任何技术。试试这个:
var numbers = [2, 4, 3, 7]
numbers.enumerated().forEach { index, value in
return value * numbers[(index + 1) % numbers.count]
}
// numbers is now [8, 12, 21, 14]
现场演示var resultArray=[Int]()
用于(索引,编号)的数字。枚举(){
如果索引
塞巴斯蒂安·卡兹马雷克答案的简洁版本:-
var resultArray = [Int]()
for (index, number) in numbers.enumerated() {
if index < numbers.count - 1 {
resultArray.append(number * numbers[index + 1])
} else {
resultArray.append(number * numbers[0])
}
}
print(resultArray)
输出:-
let numbers = [2, 4, 3, 7]
let computed = numbers.enumerated().map { $1 * numbers[($0 + 1) % numbers.count] }
print(computed)
再读一遍问题,更仔细一点你是否运行了代码?它既不生成
[8,12,21]
(如您所说)也不生成预期的[8,12,21,14]
。您最近的编辑不是一个改进,代码没有更新,也没有返回任何可能有用的内容:关于代码审阅。谢谢!语言只是告诉计算机我们在想什么的一种方式,对吗?;)我喜欢尝试新的东西,虽然你写的东西可能会回答这个问题,但是它似乎有点缺乏,并且可能会给其他用户带来非法的混乱。你能详细说明你的答案吗?这样答案就更清楚、更容易理解了?这将提供更好的答案,并帮助未来用户了解问题是如何解决的。
let numbers = [2, 4, 3, 7]
let computed = numbers.enumerated().map { $1 * numbers[($0 + 1) % numbers.count] }
print(computed)
[8, 12, 21, 14]