如何通过多个元素过滤数组并在Swift中找到总和?(How to filter the array by multiple element and find the sum in Swift?)
我试图通过一些元素来过滤我的数组。 我想记录类型包含“收入”和
$0.createdAt!
等于一个日期,但$0.createdAt!
是一个日期类型,所以我不能使用.contain("")
,我可以使用什么?recordFilter = record.filter { $0.recordtype!.contains("Income") /*|| $0.createdAt! = recordItem.createdAt!*/}
recordFilter输出:(此结果不是由createdAt过滤)
[<Record: 0x600000099fa0> (entity: Record; id: 0xd0000000003c0000 <x-coredata://913F25A5-B2C9-4646-9091-5EFE7F906908/Record/p15> ; data: { accountbook = "first book"; amount = "\U00a59.99"; assest = nil; category = "\U6295\U8d44"; createdAt = "2017-11-16 16:00:00 +0000"; date = nil; id = 15; recordtype = "\U6536\U5165"; remark = ""; toAccBook = nil; }), <Record: 0x600000099ff0> (entity: Record; id: 0xd000000000400000 <x-coredata://913F25A5-B2C9-4646-9091-5EFE7F906908/Record/p16> ; data: { accountbook = "first book"; amount = "\U00a56.58"; assest = nil; category = "\U5de5\U8d44"; createdAt = "2017-11-16 16:00:00 +0000"; date = nil; id = 16; recordtype = "\U6536\U5165"; remark = ""; toAccBook = nil; })]
之后,我尝试获取数组中的所有数量字符串并对其进行求和。 但是当我使用这段代码的时候,我发现它全部是单独的字符串,我怎样才能将它分组到数组中并且对它进行求和或者有其他方法来做到这一点?
let sum = recordFilter.map({Int($0.amount!.dropFirst())}) //[nil, nil] for i in 0..<recordFilter.count{ if recordFilter[i].amount != nil{ let amountList = recordFilter[i].amount!.dropFirst() print(amountList) // I found that it's separate string. //9.99 //11.22 // ... //let intArray = amountList.map { Int($0)!} //let sum = amountList.reduce(0, +) //print(sum) } }
I'm trying to filter my array by some element. I want recordtype is contain "Income" and createdAt equal to a date but
$0.createdAt!
is an date type so I can't use.contain("")
, what can I use?recordFilter = record.filter { $0.recordtype!.contains("Income") /*|| $0.createdAt! = recordItem.createdAt!*/}
recordFilter output: (this result is not filter by createdAt yet)
[<Record: 0x600000099fa0> (entity: Record; id: 0xd0000000003c0000 <x-coredata://913F25A5-B2C9-4646-9091-5EFE7F906908/Record/p15> ; data: { accountbook = "first book"; amount = "\U00a59.99"; assest = nil; category = "\U6295\U8d44"; createdAt = "2017-11-16 16:00:00 +0000"; date = nil; id = 15; recordtype = "\U6536\U5165"; remark = ""; toAccBook = nil; }), <Record: 0x600000099ff0> (entity: Record; id: 0xd000000000400000 <x-coredata://913F25A5-B2C9-4646-9091-5EFE7F906908/Record/p16> ; data: { accountbook = "first book"; amount = "\U00a56.58"; assest = nil; category = "\U5de5\U8d44"; createdAt = "2017-11-16 16:00:00 +0000"; date = nil; id = 16; recordtype = "\U6536\U5165"; remark = ""; toAccBook = nil; })]
After that, I trying to get all the amount string in array and sum it. But I found that it's all separate string when I use this code, how can I group it in array and sum it or have any other way to do it?
let sum = recordFilter.map({Int($0.amount!.dropFirst())}) //[nil, nil] for i in 0..<recordFilter.count{ if recordFilter[i].amount != nil{ let amountList = recordFilter[i].amount!.dropFirst() print(amountList) // I found that it's separate string. //9.99 //11.22 // ... //let intArray = amountList.map { Int($0)!} //let sum = amountList.reduce(0, +) //print(sum) } }
原文:https://stackoverflow.com/questions/47343382
最满意答案
原因是正则表达式中有
<
符号,并且在浏览器中它们被解释为标记。 要避免此类行为,您可以通过htmlspecialchars
转义此类字符:echo htmlspecialchars('/' . $this->rules['usuario']['regexp'] . '/');
The reason is that there are
<
symbols in the regexp, and in the browser they are interpreted as tags. To avoid such behavior, you can escape such characters viahtmlspecialchars
:echo htmlspecialchars('/' . $this->rules['usuario']['regexp'] . '/');
相关问答
更多-
步骤1.用$topicarray[$value][]替换$topicarray[$value] $topicarray[$value][] 第2步。 ??? 第3步。利润 Step 1. Replace $topicarray[$value] with $topicarray[$value][] Step 2. ??? Step 3. Profit
-
PHP RegEx拆分为2D数组?(PHP RegEx split to 2D array?)[2021-04-27]
您可以在正则表达式中使用命名组: $str = "C1 X2 B10"; $re = '~(?P[A-Z])(?P \d+)~'; preg_match_all($re, $str, $m, PREG_SET_ORDER); print_r($m); 给你的 Array ( [0] => Array ( [0] => C1 [type] => C [1] => C ... -
使用REGEX查找PHP(Find PHP with REGEX)[2022-11-13]
使用token_get_all您将获得给定PHP代码的PHP语言标记列表。 然后,您只需要迭代列表,查找打开的标记令牌以及相应的关闭标记。 $blocks = array(); $opened = false; foreach (token_get_all($code) as $token) { if (!$opened) { if (is_array($token) && ($token[0] === T_OPEN_TAG || $token[0] === T_OPEN_TAG_W ... -
你可以试试这个:
在PHP Regex中需要帮助(Need Help in PHP Regex)[2022-05-31]
\w仅代表单词字符,您还需要允许空格。 假设你真的想在-start-和-end-之间允许任何东西 - 你可以使用. 匹配任何角色。 除非用字符模式(在方括号[和]之间)括起来,否则不需要对连字符进行转义,因此可以用\-替换\- - 。 就像使用单个\w表示匹配任何单个单词字符一样. 表示匹配任何单个字符,因此您需要添加更多信息。以下任何一个用+表示匹配至少一个字符,或用*表示零个或多个字符。 假设你想要至少一个角色,你的表达应该是这样的: $pattern = "/-start-(.+)-end- /"; ...拆分完整的字符串依据: //m 然后遍历拆分并应用以下正则表达式来捕获斜体值“ /(.*?)<\/i>/m 在这里运行它 源: /m'; $re1 = '/(.*?)<\/i>/m'; $str = ' - Bread and Butter
- Cheese
- Milk
-
Regex PHP中的'['和']'('[' and ']' in Regex PHP)[2022-09-04]
你也需要逃离开口支架。所以要更换 $t = preg_match('/[(.*?)\]/s', $s, $matches); 同 $t = preg_match('/\[(.*?)\]/s', $s, $matches); You need to escape the opening bracket also.So replace $t = preg_match('/[(.*?)\]/s', $s, $matches); with $t = preg_match('/\[(.*?)\]/s', $s, ... -
在数组PHP中存储REGEX(Storing REGEX in array PHP)[2023-12-27]
原因是正则表达式中有<符号,并且在浏览器中它们被解释为标记。 要避免此类行为,您可以通过htmlspecialchars转义此类字符: echo htmlspecialchars('/' . $this->rules['usuario']['regexp'] . '/'); The reason is that there are < symbols in the regexp, and in the browser they are interpreted as tags. To avoid such ... -
PHP中的RegEx返回数组(RegEx in PHP to return array)[2022-01-23]
如果它始终采用该格式,请使用preg_match_all() ,如下所示: preg_match_all( '#\{image id="(\d+)"[^\}]+\}#', $input, $matches); 您的ID数组将位于$matches[1] 。 因此,对于您的示例输入,此输出 : array(1) { [0]=> string(5) "27411" } If it's always in that format, use preg_match_all(), like this: pre ...
真正的原因是正常化,你将通过这样做来打破第一个正常形态 。 但是,有很多情况下可以考虑违反正常形式。 你打交道的领域有多少?他们都是布尔人吗? 在数据库中存储序列化为字符串的数组将具有以下缺点(等等): 当您需要更新设置时,您必须首先从数据库中提取当前设置,反序列化数组,更改数组,更改数组并更新表中的数据。 在搜索时,您将无法只向数据库询问给定用户(或一组用户)是否禁用或启用了给定设置,因此您不会有任何搜索机会。 相反,您应该真的考虑使用另一个表创建另一个表,并将您需要的记录作为另一个表的一对多关系。 因此 ...相关文章
更多- 千锋首发Swift视频教程
- Swift入门视频教程-尚学堂视频教程
- lucene4.7 过滤Filter(六)
- The content of element type "package" must match "...
- could not find system property or JNDI
- java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter的解决方案
- Solr4:利用Filter实现两组关键词组合查询
- Filter 简单应用实例求详解
- 线性渐变-linear-gradient和滤镜opacity/filter的透明效果兼容性解决方案及其RGB/RGBA与16进制转换方法
- 移动MM failed to find resource file{mmiap.xml}
最新问答
更多- 如何在Laravel 5.2中使用paginate与关系?(How to use paginate with relationships in Laravel 5.2?)
- linux的常用命令干什么用的
- 由于有四个新控制器,Auth刀片是否有任何变化?(Are there any changes in Auth blades due to four new controllers?)
- 如何交换返回集中的行?(How to swap rows in a return set?)
- 在ios 7中的UITableView部分周围绘制边界线(draw borderline around UITableView section in ios 7)
- 使用Boost.Spirit Qi和Lex时的空白队长(Whitespace skipper when using Boost.Spirit Qi and Lex)
- Java中的不可变类(Immutable class in Java)
- WordPress发布查询(WordPress post query)
- 如何在关系数据库中存储与IPv6兼容的地址(How to store IPv6-compatible address in a relational database)
- 是否可以检查对象值的条件并返回密钥?(Is it possible to check the condition of a value of an object and JUST return the key?)
- GEP分段错误LLVM C ++ API(GEP segmentation fault LLVM C++ API)
- 绑定属性设置器未被调用(Bound Property Setter not getting Called)
- linux ubuntu14.04版没有那个文件或目录
- 如何使用JSF EL表达式在param中迭代变量(How to iterate over variable in param using JSF EL expression)
- 是否有可能在WPF中的一个单独的进程中隔离一些控件?(Is it possible to isolate some controls in a separate process in WPF?)
- 使用Python 2.7的MSI安装的默认安装目录是什么?(What is the default installation directory with an MSI install of Python 2.7?)
- 寻求多次出现的表达式(Seeking for more than one occurrence of an expression)
- ckeditor config.protectedSource不适用于editor.insertHtml上的html元素属性(ckeditor config.protectedSource dont work for html element attributes on editor.insertHtml)
- linux只知道文件名,不知道在哪个目录,怎么找到文件所在目录
- Actionscript:检查字符串是否包含域或子域(Actionscript: check if string contains domain or subdomain)
- 将CouchDB与AJAX一起使用是否安全?(Is it safe to use CouchDB with AJAX?)
- 懒惰地初始化AutoMapper(Lazily initializing AutoMapper)
- 使用hasclass为多个div与一个按钮问题(using hasclass for multiple divs with one button Problems)
- Windows Phone 7:检查资源是否存在(Windows Phone 7: Check If Resource Exists)
- 无法在新线程中从FREContext调用getActivity()?(Can't call getActivity() from FREContext in a new thread?)
- 在Alpine上升级到postgres96(/ usr / bin / pg_dump:没有这样的文件或目录)(Upgrade to postgres96 on Alpine (/usr/bin/pg_dump: No such file or directory))
- 如何按部门显示报告(How to display a report by Department wise)
- Facebook墙贴在需要访问令牌密钥后无法正常工作(Facebook wall post not working after access token key required)
- Javascript - 如何在不擦除输入的情况下更改标签的innerText(Javascript - how to change innerText of label while not wiping out the input)
- WooCommerce / WordPress - 不显示具有特定标题的产品(WooCommerce/WordPress - Products with specific titles are not displayed)