2017-03-09 21 views
-2

假如我是searching for cardType = points找到一个值的指标,如果它的发现,我想知道对象的索引位置。根据给定的示例数组,此对象的索引位置为1.下面是示例数组。如何从一个数组

[{ 
cardCode = MGC; 
cardId = 5720663d8944bf6710c9d894; 
cardType = gift; 
}, 
{ 
cardCode = MPC; 
cardId = 5720663d8944bf6710c9d898; 
cardType = points; 
}, 
{ 
cardCode = MAC; 
cardId = 5720663d8944bf6710c9d895; 
cardType = advantage; 
}, 
{ 
cardCode = MCC; 
cardId = 5720663d8944bf6710c9d897; 
cardType = cashback; 
}] 

Error

+0

这两个问题是不同的。我不认同包含String类型元素的数组。基于'index(of)'方法的答案在我的情况下是不可用的。 –

+0

您是否阅读过该问答的所有答案? http://stackoverflow.com/a/24069331/1187415和http://stackoverflow.com/a/32923407/1187415既解释如何使用'索引(其中:..)' –

回答

4

您可以使用index(where:)了点。

if let index = yourArray.index(where: { $0.cardType == "points" }) { 
    print(index) //1 
} 
+0

与错误消息崩溃,实测值为零。但我的阵列有价值。 –

+0

@KunalKumar编辑你的问题与你的新代码,并添加错误的屏幕截图。 –

+0

一切都与问题中所述相同。 –