Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何将数组元素相乘到下一个元素并在Swift中作为数组输出_Arrays_Swift - Fatal编程技术网

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]