我想减少这个,注意这里我有一个我知道标记为唯一标识符的字段:
对此:
最佳答案
我是通过编写这个函数来实现的(基本上是将键复制到结构中,如果它不存在并将其添加到最终数组中):
<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/