首页 \ 问答 \ 如何通过多个元素过滤数组并在Swift中找到总和?(How to filter the array by multiple element and find the sum in Swift?)

如何通过多个元素过滤数组并在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
更新时间:2023-03-11 17:03

最满意答案

原因是正则表达式中有<符号,并且在浏览器中它们被解释为标记。 要避免此类行为,您可以通过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 via htmlspecialchars:

echo htmlspecialchars('/' . $this->rules['usuario']['regexp'] . '/');

相关问答

更多

最新问答

更多
  • 如何在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)