gpt4 book ai didi

algorithm - ColdFusion - 搜索结构数组的有效方法是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:23:26 25 4
gpt4 key购买 nike

我在 ColdFusion 中有一个半大型(数百条记录)一维数组。数组中的每个项目都是一个具有多个属性的结构。我想在数组中搜索具有特定“名称”属性的结构。我知道对于字符串值数组,我可以像这样使用 Java 方法:

<cfset arrayIndex = myArray.indexOf("WhatImLookingFor") + 1>

...但这不适用于结构数组。我也知道我可以像这样暴力破解它:

<cfset arrayIndex = 0>
<cfloop from="1" to="#ArrayLen(myArray)#" index="counter">
<cfif myArray[counter].name IS "WhatImLookingFor">
<cfset arrayIndex = counter>
</cfif>
</cfloop>

...但我觉得必须有更有效的方法。有没有人有比这更好的解决方案?您可以假设“名称”属性存在于每个结构中,并且数组中没有间隙或其他对象。

最佳答案

除非您在构建数组时创建了哈希表,否则我看不出您将如何创建比您发布的 O(n) 解决方案更快的搜索函数。无论如何,在构建数组时,您可以执行以下操作:

<cfloop query="qryValues">
<cfset nameValues[name] = currentrow />
<cfset myArray[currentrow].name = name />
</cfloop>

<cfset arrayIndex = nameValues["WhatImLookingFor"] />

这假定该值始终存在。您可能需要在调用之前检查 StructKeyExists(nameValues, "WhatImLookingFor")。

关于algorithm - ColdFusion - 搜索结构数组的有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/865627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com