从数据可能不存在的数组中获取元素
Getting element from an array where data may not exist
我正在尝试循环数组中的元素
data = [];
data[3] = true;
data[4] = false;
for (i = 1; i <= data.len(); i++) {
if(data[i]) {
writeoutput("Kittens!")
}
}
我得到一个错误
不可行
我的代码是对较大过程的简化。以下不是一个选项
for (datum in data) {
if(datum) {
writeoutput("Kittens!")
}
}
除非我错过了重点,否则这就是 arrayIsDefined() 的用途,例如:
<cfscript>
data = [];
data[2] = javaCast( "null", 0 );
data[3] = true;
data[4] = false;
for (i = 1; i <= data.len(); i++) {
if(arrayIsDefined(data,i) && data[i]) {
writeoutput("Kittens!");
}
}
</cfscript>
这个 fiddle 演示了以上内容并确认它也安全地处理了数组中显式设置的 null 元素的存在:https://cffiddle.org/app/file?filepath=97b96317-8dcd-4620-a953-2c895191a8dc/67ccc09d-f4b5-4a2e-93d6-4cf3269a29d3/19c13ebe-1af4-4c72-9d7c-4cb82fa58f13.cfm
另一种方法是使用try/catch。
<cfscript>
data = [];
data[3] = true;
data[4] = false;
for (i = 1; i <= data.len(); i++) {
try {
if(data[i]) {
writeoutput("Kittens!" & i & "<br>")
}
}
catch (any e) {
writeoutput("puppies " & i & "<br>");
}
}
</cfscript>
你总是可以引导国王...
<cfscript>
data = [];
data[3] = true;
data[4] = false;
for (i = 1; i <= data.len(); i++) {
if( data[i]?:false ) {
writeoutput("Kittens!");
}
else { writeoutput("nope"); }
}
</cfscript>
https://trycf.com/gist/d8664be620520252871e91796bef2f61/acf2016?theme=monokai
我正在尝试循环数组中的元素
data = [];
data[3] = true;
data[4] = false;
for (i = 1; i <= data.len(); i++) {
if(data[i]) {
writeoutput("Kittens!")
}
}
我得到一个错误
不可行
我的代码是对较大过程的简化。以下不是一个选项
for (datum in data) {
if(datum) {
writeoutput("Kittens!")
}
}
除非我错过了重点,否则这就是 arrayIsDefined() 的用途,例如:
<cfscript>
data = [];
data[2] = javaCast( "null", 0 );
data[3] = true;
data[4] = false;
for (i = 1; i <= data.len(); i++) {
if(arrayIsDefined(data,i) && data[i]) {
writeoutput("Kittens!");
}
}
</cfscript>
这个 fiddle 演示了以上内容并确认它也安全地处理了数组中显式设置的 null 元素的存在:https://cffiddle.org/app/file?filepath=97b96317-8dcd-4620-a953-2c895191a8dc/67ccc09d-f4b5-4a2e-93d6-4cf3269a29d3/19c13ebe-1af4-4c72-9d7c-4cb82fa58f13.cfm
另一种方法是使用try/catch。
<cfscript>
data = [];
data[3] = true;
data[4] = false;
for (i = 1; i <= data.len(); i++) {
try {
if(data[i]) {
writeoutput("Kittens!" & i & "<br>")
}
}
catch (any e) {
writeoutput("puppies " & i & "<br>");
}
}
</cfscript>
你总是可以引导国王...
<cfscript>
data = [];
data[3] = true;
data[4] = false;
for (i = 1; i <= data.len(); i++) {
if( data[i]?:false ) {
writeoutput("Kittens!");
}
else { writeoutput("nope"); }
}
</cfscript>
https://trycf.com/gist/d8664be620520252871e91796bef2f61/acf2016?theme=monokai