AFAIK нет документированной функции arrayFind в CF8. На cflib.org есть функция arrayFind , которая использует некоторые недокументированные
функциональность Java См. Также Как найти значение в массиве? :
... Массивы ColdFusion являются
реализация списков Java (java.util.List). Так что весь список Java
методы доступны для массивов CF.
Так что для поиска в массиве все что вам нужно сделать, это добавить
метод. Например, учитывая этот массив:
<cfset arry = listToArray("tom, dick, harry, phred")>
Вы можете сделать поиск следующим образом: <cfset findValue = arry.indexOf("harry")>
вернет 2 - значение индекса Гарри в массиве.
indexOf возвращает значение индекса элемента в массиве.
Примечание: имейте в виду, что в отличие от методов CF, метод java соответствует как значению, так и типу . Таким образом, поиск числа 1 (integer / double / etcetera) НЕ совпадает с поиском «1» (строка). Если вы точно не знаете, с какими типами объектов вы имеете дело, результаты могут вас удивить.
Возьмите эти два примера:
<cfscript>
// numeric searches are sensitive to type
arry = listToArray("2,4,6");
writeOutput('<br>indexOf("6") = '& arry.indexOf("6"));
writeOutput('<br>indexOf( val(6) )= '& arry.indexOf(val(6)));
// string searches are case sensitive
arry = listToArray("tom,dick,harry,phred");
writeOutput("<br>indexOf(harry) = "& arry.indexOf("harry"));
writeOutput("<br>indexOf(HaRry) = "& arry.indexOf("HaRry"));
</cfscript>
Поиск "6"
дает результаты, отличные от val(6)
- indexOf ("6") = 2
- indexOf (val (6)) = -1
.. и поиск строки для "harry"
дает результаты, отличные от "HaRry"
- indexOf (Гарри) = 2
- indexOf (HaRry) = -1
Так что, используя методы java, знайте, что вы получаете ... а что нет.