例:
>给定数组:
mainArray = [7,7,3,2,1,5,5]
现在我需要创建一个int数组的数组.
例:
Array [][] = [ [7,7],[3],[2,2],[1],[7],[5,5] ]
这是我有的:
for var i = 0; i < val.count; i++ { var columnArray = Array<Int>() for var j in 0...9 { if oldNum == val[j]{ columnArray.append(val[j]) } else { array.append(columnArray); //j += 1 break; } oldNum = val[j]; j += 1 }}解决方法@H_301_18@ 您可以使用reduce方法.
let result = numbers.reduce([[Int]]()) { (var result,num) -> [[Int]] in if var lastSequence = result.last where lastSequence.first == num { result[result.count-1].append(num) } else { result.append([num]) } return result}
减少工作如何?
reduce将封闭中的逻辑应用于空的2D数组的整数([[Int]])和数字的第一个elm.
然后再次应用上一次迭代的结果和第二个整数数组…等等.
封闭中发生了什么?
if是否检查在结果中添加的最后一个数组中的数字是否等于当前检查的整数.如果这样,那个整数被添加到该数组.
否则,只会添加一个仅包含新整数的数组.
测试
[[7,5]]总结
以上是内存溢出为你收集整理的ios – 数组的数组.仅存储副本全部内容,希望文章能够帮你解决ios – 数组的数组.仅存储副本所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)