2016-11-10 73 views
-1

我有字典,我正在添加到tableView。如何刪除Swift中的組數據?

let myArray = [["name": "First element", "foo": "bar","GroupID":"1"], ["name": "First element", "foo": "bar","GroupID":"1"],["name": "Second element", "foo": "bar","GroupID":"2"], ["name": "Second element", "foo": "bar","GroupID":"2"]] 

在這本詞典中,我有密鑰GroupID

是否有可能我可以得到字典數據的GroupID = %@

我想篩選基於分組

假設數據我有四個數據,和組ID在兩個數據相同。我想從字典中刪除所有GroupID相同的數據。

如果groupid == 1比數據將被刪除的字典的GroupID == 1和tableview將重新加載數據。

我這樣做是因爲我想刪除組數據。

+1

你想你的陣列不重複GROUPID?或者你想你的數組沒有那些正在重複的groupid? – Rajat

+0

@Rajat感謝您的快速回復。實際上我有主要和次要產品。每個主要產品都有它的子項目。當我刪除主項目時,它的子項目也應該刪除。爲此,我想我應該使用groupid。這是正確的嗎? –

+0

確定刪除項目後,所有具有該組標識的子項目都應該被刪除,對嗎? – Rajat

回答

3

您可以使用您Arrayfilter從您的數組中刪除這些字典,看看這個例子

var subitems: [[String:String]] = [ 
    ["groupid": "1", "b": "2"], 
    ["groupid": "3", "b": "4"], 
    ["groupid": "1", "b": "6"] 
] 

var filteredSubitems = subitems.filter{ 
    $0["groupid"] != "1" // change with your groupid 
} 

print(filteredSubitems) 
+0

這也可以使用 –

+1

你也可以去除過濾塊周圍的括號。 – ganzogo

+0

讓productDict = arrProductCart [sender.tag] as! [字符串:AnyObject] 打印(productDict) VAR filteredSubitems = {productDict.filter $ 0 「的groupid」] = 「1」 //你的GROUPID 變化!} –

1

這裏有一個簡單的方法來做到這一點:

var index = 0 
for element in myArray { 
    if element["GroupID"] == "1" { 
     myArray.remove(at: 0) 
     index += 1 
    } else { 
     index += 1 
    } 
} 

print(myArray): 

它打印出:

[ 「名字」: 「二次元」, 「組ID」: 「2」,「富 「: 」棒「],[」 名字「: 」第二要素「, 」組ID「: 」2「, 」富「: 」棒「]]

祝你好運!

+0

'[Dictionary ]'的值沒有成員'remove' –

+0

您是否已經導入了'Foundation'或'UIKit'? –

+0

您在問題中編寫的數組是否是您的實際數組?你能把實際的一個放出來嗎? –