草庐IT

6、Arrays类

全部标签

arrays - 在 Swift 数组中查找元素的总和

在swift中求整数数组之和的最简单(最佳)方法是什么?我有一个名为倍数的数组,我想知道倍数的总和。 最佳答案 这是我能找到的最简单/最短的方法。Swift3和Swift4:letmultiples=[...]letsum=multiples.reduce(0,+)print("SumofArrayis:",sum)swift2:letmultiples=[...]sum=multiples.reduce(0,combine:+)更多信息:这使用Array的reduce方法(文档here),它允许您“通过递归地应用提供的闭包将元素集

arrays - 在 Swift 中删除数组中的重复元素

我可能有一个如下所示的数组:[1,4,2,2,6,24,15,2,60,15,6]或者,实际上,任何类似类型的数据部分序列。我想要做的是确保每个相同的元素只有一个。例如,上面的数组将变为:[1,4,2,6,24,15,60]请注意,删除了2、6和15的重复项,以确保每个相同的元素只有一个。Swift是否提供了一种轻松完成此操作的方法,还是我必须自己完成? 最佳答案 您可以非常轻松地转换为Set并再次转换回Array:letunique=Array(Set(originals))这不保证保持数组的原始顺序。

arrays - 在 Swift 中删除数组中的重复元素

我可能有一个如下所示的数组:[1,4,2,2,6,24,15,2,60,15,6]或者,实际上,任何类似类型的数据部分序列。我想要做的是确保每个相同的元素只有一个。例如,上面的数组将变为:[1,4,2,6,24,15,60]请注意,删除了2、6和15的重复项,以确保每个相同的元素只有一个。Swift是否提供了一种轻松完成此操作的方法,还是我必须自己完成? 最佳答案 您可以非常轻松地转换为Set并再次转换回Array:letunique=Array(Set(originals))这不保证保持数组的原始顺序。

arrays - 是否存在 Swift 数组分配不一致的原因(既不是引用也不是深层复制)?

我正在阅读文档,并且不断地对语言的一些设计决策摇头。但真正让我感到困惑的是如何处理数组。我冲到Playground上试了一下。你也可以试试。所以第一个例子:vara=[1,2,3]varb=aa[1]=42ab这里的a和b都是[1,42,3],我可以接受。数组被引用-好的!现在看这个例子:varc=[1,2,3]vard=cc.append(42)cdc是[1,2,3,42]但是d是[1,2,3]。也就是说,d在上一个示例中看到了更改,但在这个示例中没有看到。文档说那是因为长度改变了。现在,这个怎么样:vare=[1,2,3]varf=ee[0..2]=[4,5]efe是[4,5,3]

arrays - 是否存在 Swift 数组分配不一致的原因(既不是引用也不是深层复制)?

我正在阅读文档,并且不断地对语言的一些设计决策摇头。但真正让我感到困惑的是如何处理数组。我冲到Playground上试了一下。你也可以试试。所以第一个例子:vara=[1,2,3]varb=aa[1]=42ab这里的a和b都是[1,42,3],我可以接受。数组被引用-好的!现在看这个例子:varc=[1,2,3]vard=cc.append(42)cdc是[1,2,3,42]但是d是[1,2,3]。也就是说,d在上一个示例中看到了更改,但在这个示例中没有看到。文档说那是因为长度改变了。现在,这个怎么样:vare=[1,2,3]varf=ee[0..2]=[4,5]efe是[4,5,3]

arrays - 如何在 Swift 中打乱数组?

.shuffle()和.shuffled()是Swift的一部分原始历史问题:如何在Swift中随机化或随机排列数组中的元素?例如,如果我的数组包含52张扑克牌,我想洗牌该数组以洗牌。 最佳答案 此答案详细介绍了如何在Swift4.2+中使用快速且统一的算法(Fisher-Yates)进行洗牌,以及如何在Swift的各个早期版本中添加相同的功能。每个Swift版本的命名和行为都与该版本的变异和非变异排序方法相匹配。swift4.2+shuffle和shuffled是原生的Swift4.2开始。用法示例:letx=[1,2,3].sh

arrays - 如何在 Swift 中打乱数组?

.shuffle()和.shuffled()是Swift的一部分原始历史问题:如何在Swift中随机化或随机排列数组中的元素?例如,如果我的数组包含52张扑克牌,我想洗牌该数组以洗牌。 最佳答案 此答案详细介绍了如何在Swift4.2+中使用快速且统一的算法(Fisher-Yates)进行洗牌,以及如何在Swift的各个早期版本中添加相同的功能。每个Swift版本的命名和行为都与该版本的变异和非变异排序方法相匹配。swift4.2+shuffle和shuffled是原生的Swift4.2开始。用法示例:letx=[1,2,3].sh

arrays - 如何在 Swift 中连接或合并数组?

如果像这样在swift中创建了两个数组:vara:[CGFloat]=[1,2,3]varb:[CGFloat]=[4,5,6]如何将它们合并到[1,2,3,4,5,6]? 最佳答案 你可以用+连接数组,构建一个新数组letc=a+bprint(c)//[1.0,2.0,3.0,4.0,5.0,6.0]或使用+=(或append)将一个数组附加到另​​一个数组:a+=b//Or:a.append(contentsOf:b)//Swift3a.appendContentsOf(b)//Swift2a.extend(b)//Swift1

arrays - 如何在 Swift 中连接或合并数组?

如果像这样在swift中创建了两个数组:vara:[CGFloat]=[1,2,3]varb:[CGFloat]=[4,5,6]如何将它们合并到[1,2,3,4,5,6]? 最佳答案 你可以用+连接数组,构建一个新数组letc=a+bprint(c)//[1.0,2.0,3.0,4.0,5.0,6.0]或使用+=(或append)将一个数组附加到另​​一个数组:a+=b//Or:a.append(contentsOf:b)//Swift3a.appendContentsOf(b)//Swift2a.extend(b)//Swift1

arrays - 如何在 Swift 中查找列表项的索引?

我试图通过搜索列表来查找项目索引。有人知道该怎么做吗?我看到有list.StartIndex和list.EndIndex但我想要类似python的list.index("text")。 最佳答案 由于swift在某些方面比面向对象更实用(数组是结构,而不是对象),请使用函数“find”对数组进行操作,它返回一个可选值,因此请准备好处理nil值:letarr:Array=["a","b","c"]find(arr,"c")!//2find(arr,"d")//nil使用firstIndex和lastIndex-取决于您是在寻找项目的第