如何使用CFML测试两个数组是否相同?

Jas*_*son 3 coldfusion

使用CFML(ColdFusion Markup Langauge,又名ColdFusion),如何比较两个单维数组是否相同?

Jas*_*son 11

有一种使用CFML底层java比较两个数组的非常简单的方法.根据Adobe的Rupesh Kumar最近的博客(http://coldfused.blogspot.com/),ColdFusion数组是java列表(java.util.List)的实现.因此,所有Java列表方法都可用于CFML数组.

因此,要比较2个数组,您需要做的就是使用equals方法.如果数组相等则返回YES,否则返回NO.

<cfset array1 = listToArray("tom,dick,harry,phred")/>
<cfset array2 = listToArray("dick,harry,phred") />
<cfset array3 = listToArray("tom,dick,harry,phred")/>

<cfoutput>
Array2 equals Array1 #array2.equals(array1)# (returns a NO) <br/>
Array3 equals Array1 #array3.equals(array1)# (returns a YES) <br/>
</cfoutput>
Run Code Online (Sandbox Code Playgroud)


ale*_*ale 2

假设数组中的所有值都是简单值,最简单的方法可能是将数组转换为列表并仅进行字符串比较。

<cfif arrayToList(arrayA) IS arrayToList(arrayB)>
    Arrays are equal!
</cfif>
Run Code Online (Sandbox Code Playgroud)

不像其他提供的解决方案那么优雅,但非常简单。