0
如何通过键不是值排序Coldfusion结构。按键ColdFusion排序结构
structSort(struct, "text", "asc")
它对值进行排序,但我想对键进行排序。
有谁知道该怎么做?
感谢
如何通过键不是值排序Coldfusion结构。按键ColdFusion排序结构
structSort(struct, "text", "asc")
它对值进行排序,但我想对键进行排序。
有谁知道该怎么做?
感谢
如果您对CF2016,您可以使用structNew("ordered")
创建保持其插入顺序结构。
orderedStruct = structNew("ordered");
structKeys = structKeyArray(struct);
arraySort(structKeys, "text", "asc");
for (key in structKeys) {
orderedStruct[key] = struct[key];
}
writeDump(orderedStruct);
在较早版本的CF上,您必须依赖Java的LinkedHashMap。
orderedStruct = createObject("java", "java.util.LinkedHashMap").init();
但要注意的orderedStruct
键名现在是区分大小写的!另请注意,转储结构将按字母顺序显示条目。但是,循环结构会产生正确的顺序。
简写语法为'orderedStruct = [:];' – isapir
'ListSort(structKeyList(struct))' –
感谢它返回排序的结构键列表,但我失去了价值观。我想对键进行排序,但保留链接到键的值。 – user6824563
@ user6824563如果你在CF2016上,你可以使用'structNew(“ordered”)'并重新赋值给排序后的键。详情请参阅我的回答。 – Alex