Struct 按键的ColdFusion排序结构
如何按键而不是值对coldfusion结构进行排序Struct 按键的ColdFusion排序结构,struct,coldfusion,Struct,Coldfusion,如何按键而不是值对coldfusion结构进行排序 structSort(struct, "text", "asc") 它对值进行排序,但我想对键进行排序 有人知道怎么做吗 谢谢如果您使用的是CF2016,您可以使用structNew(“ordered”)创建一个保持插入顺序的结构 orderedStruct = structNew("ordered"); structKeys = structKeyArray(struct); arraySort(structKeys, "text", "
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
键名现在区分大小写!还要注意,转储结构将按字母顺序显示条目。但是,在结构上循环将产生正确的顺序。ListSort(structKeyList(struct))
感谢它返回已排序的结构键列表,但我丢失了值。我想对键进行排序,但保留与键链接的值。@user6824563如果您在CF2016上,您可以使用structNew(“ordered”)
并将值重新分配给已排序的键。有关详细信息,请参见我的答案。@user6824563您可以在有序列表上循环并访问结构。速记语法为orderedStruct=[:]代码>我喜欢简洁的语法