Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 从数组中筛选给定特定元素的swift数组_Arrays_Swift_Xcode_Filter - Fatal编程技术网

Arrays 从数组中筛选给定特定元素的swift数组

Arrays 从数组中筛选给定特定元素的swift数组,arrays,swift,xcode,filter,Arrays,Swift,Xcode,Filter,下面是我收到的响应数组。
 我必须在UITableView上显示此数据,其中标题标题将是我的transactionDate,与该日期相关的项目将作为该部分中的行数 对于下面的代码,我已经成功地从给定的列表中提取了唯一的日期,并且在唯一的日期数组中得到了3个元素 现在我想要另一个数组,它将具有与来自唯一日期数组的日期关联的项 所以在结果中,我应该为transactionDate值获取3个数组。 它应该像array1一样,有两个与日期相关的值对象01/02/2021array2将有一个与日期相关的值

下面是我收到的响应数组。
 我必须在
UITableView
上显示此数据,其中标题标题将是我的
transactionDate
,与该日期相关的项目将作为该部分中的行数

对于下面的代码,我已经成功地从给定的列表中提取了唯一的日期,并且在唯一的日期数组中得到了3个元素

现在我想要另一个数组,它将具有与来自唯一日期数组的日期关联的项

所以在结果中,我应该为transactionDate值获取3个数组。 它应该像array1一样,有两个与日期相关的值对象
01/02/2021
array2将有一个与日期相关的值
27/01/2021
,array3将有一个与日期相关的值对象
25/01/2021

随着给定日期事务的进行,这些数据将不断增加,因此需要一些动态实现

我的所有数据元素都在包含所有这些元素的数组
activityListArray
中。 其中我筛选出了如下唯一日期

for i in activityListArray{
            date_array.append(i.transactionDate!)
        }
        let unique = Array(Set(date_array))
现在,为了得到预期的结果,我下一步应该做什么

提前谢谢

我得到的答复如下:

 {
            accountNumber = 0000078;
            amount = 0;
            buyingAmount = "277.42";
            buyingCurrency = EUR;
            currency = "";
            customerInstruction = "0201000009958346-000000218";
            payeeName = "Ash Roy";
            reasonCode = "";
            sellingAmount = "254.00";
            sellingCurrency = GBP;
            status = AWAITINGBANKAPPROVAL;
            subType = "Payment without Fx";
            transactionDate = "01/02/2021";
            type = "";
        },
                {
            amount = 0;
            buyingAmount = "436.39";
            buyingCurrency = GBP;
            currency = "";
            customerInstruction = "0201000009958346-000000210";
            reasonCode = "";
            sellingAmount = "788.00";
            sellingCurrency = CAD;
            status = PENDING;
            subType = "Payment without Fx";
            transactionDate = "27/01/2021";
            type = "";
        },
                {
            amount = 0;
            buyingAmount = "436.39";
            buyingCurrency = GBP;
            currency = "";
            customerInstruction = "0201000009958346-000000207";
            reasonCode = "";
            sellingAmount = "788.00";
            sellingCurrency = CAD;
            status = PENDING;
            subType = "Payment without Fx";
            transactionDate = "25/01/2021";
            type = "";
        },
                {
            amount = 0;
            buyingAmount = "436.39";
            buyingCurrency = GBP;
            currency = "";
            customerInstruction = "0201000009958346-000000206";
            reasonCode = "";
            sellingAmount = "788.00";
            sellingCurrency = CAD;
            status = PENDING;
            subType = "Payment without Fx";
            transactionDate = "01/02/2021";
            type = "";
        }

您不需要提取唯一的日期,Swift标准库已经为字典提供了API,在字典中,您可以使用
init(grouping:by:)

请在这里阅读所有相关内容

这将返回一个以唯一transactionDate作为键的字典,以及以该transactionDate作为值的对象数组


现在,您可以简单地将节数返回为
dict.keys.count
,将每个节中的行数返回为
dict[Array(dict.keys)[indexath.section]]?。count

您可以使用
字典(分组:by)
来完成此操作。@sagar:请检查发布的答案,让我知道您是否仍然面临这个问题,如果它的工作很好,请考虑接受答案:Sandeep Bhandari:谢谢兄弟,这对我帮助很大,值得称赞。非常感谢。@sagar:很高兴我能帮忙:)@Sandeep Bhandari:-只需要快速更新帮助,我们可以使用transactionDate按升序或降序对数据进行排序吗。。。。?有什么相同的提示吗?你可以,只需搜索排序字典键:)就可以了,让我检查一下我是否能找到已经回答的问题
let dict = Dictionary<String,[YourObject]>(grouping: activityListArray, by: {$0.transactionDate})
let dict = Dictionary(grouping: activityListArray, by: {$0.transactionDate})