如何编写数组无指定元素的判断条件?ColdFusion代码修改咨询
Hey there! Let's tackle your two questions clearly and practically:
1. 判断数组中不存在指定元素的条件写法
判断数组里没有某个元素,核心思路就是先检查元素是否存在,再对结果取反。不同语言有对应的实现方式,针对你后面提到的ColdFusion,重点说两种场景:
- ColdFusion 11及以上版本:直接用数组的
contains()方法取反,语法是!数组变量.contains(目标元素) - 低于ColdFusion 11的版本:用
ArrayFind()函数,判断返回值是否为0(因为ArrayFind()找到元素会返回索引,找不到返回0),语法是ArrayFind(数组变量, 目标元素) EQ 0
2. 修改你的ColdFusion 条件
先看你给出的原代码:
<cfif s.contains(#curr#)> <cfset ArrayAppend(s,curr)> <cfset en++> <cfset cl=en-st> </cfif>
你需要的是当数组s不包含curr时执行代码块,所以要对contains()的结果取反,同时注意ColdFusion里<cfif>中引用变量不需要加#号(加了也能运行,但更规范的写法是去掉)。
修改后的代码(适用于ColdFusion 11+):
<cfif !s.contains(curr)> <cfset ArrayAppend(s,curr)> <cfset en++> <cfset cl = en - st> </cfif>
兼容低版本ColdFusion的写法:
如果你的ColdFusion版本低于11,contains()方法不支持,就用ArrayFind()替代:
<cfif ArrayFind(s, curr) EQ 0> <cfset ArrayAppend(s,curr)> <cfset en++> <cfset cl = en - st> </cfif>
内容的提问来源于stack exchange,提问作者srujana narla
相关产品推荐
相关产品推荐

