【问题标题】:Find a value within array of structures在结构数组中查找值
【发布时间】:2021-04-07 16:57:33
【问题描述】:

这可能以前被问过,但没找到……或者我发现的东西很旧。

我有一个这样的结构数组:

是否有一个 CFML 函数可以让我检查“test@email.com”是否已经存在于任何结构“toAddress”下?我显然可以循环我的数组,如果找到就检查并中断,但想知道是否已经存在为此?

谢谢。 帕特

【问题讨论】:

    标签: coldfusion cfml


    【解决方案1】:

    您可以将arrayFind() 与回调函数一起使用。使用上面的数据结构并假设数组名为myArray

    if( 
        !arrayFind( myArray, function( item ){
            return item.toAddress == 'test@email.com'
        })
    ){
        // do stuff if address is not used.
    }
    

    【讨论】:

    • 有效!谢谢。但是有一个问题:这意味着即使找到匹配项,它仍然会遍历所有数组元素,对吗?如果是这样,如果函数返回 true,我有什么办法可以告诉 arrayFind() 中断?
    • arrayFind() 返回与您在回调中提供的逻辑匹配的第一个索引。我不确定内部逻辑,但似乎在找到第一个元素后它会中断。对此进行测试的一种方法是添加writeDump() 以将电子邮件转储到回调中,以查看它是否输出所有电子邮件。
    • 对于未来的读者:arrayFind() 将在找到第一个实例后停止查找。这是一个相当有效的功能。 trycf.com/gist/af2e5fe9253fab408c6c21cfa490a6ae/…
    • 太棒了!感谢您的时间和帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 2022-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    相关资源
    最近更新 更多