coldfusion - 如何从 Coldfusion 中的结构数组中删除重复项

我想减少这个,注意这里我有一个我知道标记为唯一标识符的字段:

对此:

最佳答案

我是通过编写这个函数来实现的(基本上是将键复制到结构中,如果它不存在并将其添加到最终数组中):

<cffunction name="RemoveDuplicatesFromObjectArray">
    <cfargument name="objs" type="array">
    <cfargument name="key" type="string">
    <cfscript>
        var keys ={};
        var result = [];
        for (var obj in arguments.objs)
        {
            if (not StructKeyExists(keys, obj[arguments.key]))
            {
                ArrayAppend(result, obj);
                keys[obj[arguments.key]] = true;
            }
        }
    </cfscript>

    <cfreturn result>
</cffunction>

并这样调用它:

<cfset arr = [{
                    "EXPENSEREPORTID": 129591,
                    "EXPENSELINEITEMID": 602684,
                    "DOLLARSBEFORE": 8.1000000000,
                    "DOLLARSAFTER": 5.4000000000
                }, {
                    "EXPENSEREPORTID": 129591,
                    "EXPENSELINEITEMID": 602684,
                    "DOLLARSBEFORE": 8.1000000000,
                    "DOLLARSAFTER": 5.4000000000
                }]> 
<Cfdump var="#RemoveDuplicatesFromObjectArray(arr,'EXPENSEREPORTID')#">

https://stackoverflow.com/questions/39882261/

相关文章:

php - 使用带有表前缀的 DB::raw()

angular - typescript 错误 TS1005 : '=' expected

python - Flask 应用程序搜索栏

c - FreeRTOS 中的抢占

amazon-s3 - Haproxy - 将请求转发到 S3 托管站点

curl - 如何使用 curl 访问 IBM speech-to-text api?

python - 如何清除 PYQTGRAPH 中的 ScatterPlotItem

python - 如何删除 Tkinter OptionMenu 小部件的边框

sql-server - 为什么即使回滚事务,SQL Server 仍保持可变状态?

java - 从测试用例调用 Controller 时,使用自动连线组件测试 Controller