Whatever message this page gives is out now! Go check it out!
setNew()
setNew(variant)| Parameter | Description |
|---|---|
| variant | Optional string: ordered, nocase, or ordered-nocase. |
<cfscript>
// Default: unordered, case-sensitive
tags = setNew();
tags.add("cfml");
tags.add("sql");
writeOutput(tags.size()); // 2
// Ordered: iteration / toArray follow insert order
steps = setNew("ordered");
steps.add("validate");
steps.add("save");
steps.add("notify");
// Case-insensitive membership
roles = setNew("nocase");
roles.add("Admin");
writeOutput(roles.has("admin")); // true
</cfscript>
<cfscript>
/**
* Collect distinct session IDs from an array of structs (e.g. parsed log rows).
*/
function uniqueSessionIds(required array logRows) {
var ids = setNew("ordered"); // stable order for reporting
for (var row in logRows) {
if (structKeyExists(row, "sessionId") && len(trim(row.sessionId))) {
ids.add(trim(row.sessionId));
}
}
return ids.toArray();
}
rows = [
{ "sessionId": "abc", "event": "view" },
{ "sessionId": "abc", "event": "click" },
{ "sessionId": "xyz", "event": "view" }
];
writeOutput(serializeJSON(uniqueSessionIds(rows))); // ["abc","xyz"]
</cfscript>