如何从swift 2.0中的Dict中删除重复值

时间:2015-12-31 05:48:40

标签: ios swift nsmutablearray nsmutabledictionary

您好我只想删除重复的对象应该在dictionary中移除我在tableView

填充它

此处我的示例代码位于' CellForRowAtIndexPath'

controller.titleName = dict["itemName"] as? String

我的输出:

{
    itemName = test;
},
{
    itemName = funny;
},
    {
    itemName = vv;
},
    {
    itemName = hhh;
},
    {
    itemName = west;
}

3 个答案:

答案 0 :(得分:1)

试试这个

let uniqueArr = Array(Set(dict.values))

答案 1 :(得分:1)

首先,我认为在使用数组创建dict之前,所以在加载tableview / collectionview之前删除数组中的所有复制对象。

您必须从NSSet创建NSArray一个选项,以便在NSSet中自动删除所有已复制的object。然后从NSSet开始,您必须创建NSArray。 从数组转换set如下

var set = NSSet(array: myarray)

转换数组for set

var newarry = set.allObjects as NSArray

答案 2 :(得分:0)

对于你的问题,我已经单独尝试了,我得到了答案

var arr = [AnyObject]()
var arrAppend = [String]()

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    let array = ["one", "one", "two", "two", "three", "three"]
    let uniqueValue = Array(Set(array))
    print("The unique value is - \(uniqueValue)")


    let dictTest = ["itemName":"test"]
    let dictFunny = ["itemName":"funny"]
    let dictVVV = ["itemName":"vvv"]
    let dictHHH = ["itemName":"hhh"]
    let dictWest = ["itemName":"west"]
    let dictTT = ["itemName":"tt"]
    let dictWest1 = ["itemName":"west"]

    arr.append(dictWest1)
    arr.append(dictTest)
    arr.append(dictVVV)
    arr.append(dictTT)
    arr.append(dictWest)
    arr.append(dictFunny)
    arr.append(dictHHH)

    print("Array  Response: \(arr)")

    for keyValue in arr as Array
    {
       let getDictValueFromArray = keyValue["itemName"] as! String
        arrAppend.append(getDictValueFromArray)
    }
    let unique = Array(Set(arrAppend))
    print("the result is-\(unique)")
}

唯一的输出是

the result is-["funny", "test", "west", "vvv", "hhh", "tt"]