如何过滤字符串数组中的斯威夫特

问题描述:

通过使用目标C我有过滤一年阵列使用NSPredicate如何过滤字符串数组中的斯威夫特

下面是代码。

yearArray = [yearArray filteredArrayUsingPredicate:[NSPredicate 
    predicateWithFormat:@"SELF != ''"]]; 

按照上面的代码它的工作目标C细,我一定要在斯威夫特3,滤波器阵列

什么是输入年份阵列: -

(Year,"","","",JAN,"","","",FEB,"","","",MAR,"","","",APR,"","","", 
    MAY,"","","",JUN,"","","",JUL,"","","",AUG,"","","",SEP,"","","",OCT 
    ,"","","", NOV,"","","",DEC,"","","","",WIN,"","","",SPR,"","","",SUM 
    ,"","","",AUT,"","","","",ANN) 

Need filter Output Array

(Year,JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC,WIN,SPR,SUM,AUT,ANN) 

请给解决方案如何快速过滤数组。

使用此代码:

let yearArray: [String] = ... // your array of type [String] 

let filteredArray = yearArray.filter { 
    !$0.isEmpty 
} 

看图片输出:

Example

+0

我用你的代码,但是它的示值误差,表达的类型是没有更多的上下文暧昧。 –

+0

是你的[String]类型还是不同的数组? –

+0

字符串类型的NSMutableArray –

您可以通过使用过滤器(上Array型)做到这一点:

let filteredArray = yearArray.filter{$0 != ""} 

就这么简单。

如果阵列是一个NSMutableArray,只需将其转换为[String]

if let yearArray = yearArray as? [String] { 
    let filteredArray = yearArray.filter{$0 != ""} 
    // add your code here 
} 
+2

'!$ 0.isEmpty'比'$ 0!=“”'更可取。它更好地交流意图。 – Alexander