具有条件的iOS-NSArray过滤器

时间:2016-01-05 05:02:07

标签: nsarray

我是新来的!

我有NSArray这样的("file01_header","file01_body", "file01_xxx", ... ,"file02_header", ...)

我过滤它并获得2个不同的NSArrays:

  1. Array_header ("file01_header","file02_header",...)

  2. Array_body ("file01_body", "file02_body", ...)

  3. 现在我必须从Array_header中减去Array_body中具有相应项目的所有项目,因为并非所有项目都包含原始数组中fileNN_body的{​​{1}},我必须给出Array_header作为输出,只有没有相应主体的项目。

    我该怎么做?

    谢谢!

1 个答案:

答案 0 :(得分:0)

如果你正在使用swift,你可以使用一个闭包和一些小的字符串来轻松过滤。

以下是一个例子:

let funkyArray = ["file01_header","file01_body", "file01_xxx", "file02_header","file03_xxx"]

let headerFilterClosure : (String) -> Bool = {fileName in
    if fileName.containsString("header") {
        let fileBase = fileName.componentsSeparatedByString("_")[0]
        let fileBodyName = "\(fileBase)_body"

        if funkyArray.contains(fileBodyName) {
            return true
        }
    }
    return false
}

funkyArray.filter(headerFilterClosure)

我认为一个更好的长期解决方案是没有这样一个时髦的阵列,并使用数据结构或至少一个带有选项的元组来管理你的文件信息。

最佳, 约什