首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将`NSmutableArray`数组拆分成chunks swift 3?

如何将`NSmutableArray`数组拆分成chunks swift 3?
EN

Stack Overflow用户
提问于 2017-07-05 17:49:49
回答 2查看 302关注 0票数 0
代码语言:javascript
复制
NSMutableArray *sample; 

我有一个NSmutableArray,我想把它分成块。我试着在网上查过了,没有找到解决方案。我找到了拆分整数数组的链接。

EN

回答 2

Stack Overflow用户

发布于 2017-07-05 18:18:15

这个更快的怎么样?

代码语言:javascript
复制
let integerArray = [1,2,3,4,5,6,7,8,9,10]
let stringArray = ["a", "b", "c", "d", "e", "f"]
let anyObjectArray: [Any] = ["a", 1, "b", 2, "c", 3]

extension Array {
    func chunks(_ chunkSize: Int) -> [[Element]] {
        return stride(from: 0, to: self.count, by: chunkSize).map {
            Array(self[$0..<Swift.min($0 + chunkSize, self.count)])
        }
    }
}

integerArray.chunks(2) //[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
stringArray.chunks(3) //[["a", "b", "c"], ["d", "e", "f"]]
anyObjectArray.chunks(2) //[["a", 1], ["b", 2], ["c", 3]]

NSMutableArray转换为Swift Array

代码语言:javascript
复制
let nsarray  = NSMutableArray(array: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
if let swiftArray = nsarray as NSArray as? [Int] {
    swiftArray.chunks(2) //[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
}

如果你坚持使用NSArray,那么:

代码语言:javascript
复制
let nsarray  = NSMutableArray(array: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

extension NSArray {
    func chunks(_ chunkSize: Int) -> [[Element]] {
        return stride(from: 0, to: self.count, by: chunkSize).map {
            self.subarray(with: NSRange(location: $0, length: Swift.min(chunkSize, self.count - $0)))
        }
    }
}

nsarray.chunks(3) //[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
票数 2
EN

Stack Overflow用户

发布于 2017-07-05 17:54:31

您可以使用subarray方法。

代码语言:javascript
复制
let array  = NSArray(array: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

let left  = array.subarray(with: NSMakeRange(0, 5))
let right = array.subarray(with: NSMakeRange(5, 5))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44922718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档