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