在 Coldfusion 中对嵌套结构进行排序
Sort a nested structure in Coldfusion
我正在尝试使用 StructSort 对嵌套结构进行排序。下面是我正在尝试做的一个简单示例。下面的代码不起作用并且 returns 以下错误“指定的元素 a 不包含简单值。”是否可以在 Coldfusion 中对嵌套结构进行排序,如果可以,如何排序?
<cfscript>
data = {"a":{"name":100},"b":{"name":50},"c":{"name":25},"d":{"name":75}};
dataSorted= StructSort(data, function(a,b) {
return compare(a.name, b.name);
});
writeDump(dataSorted);
</cfscript>
预期输出
- c
- b
- d
- 一个
也在这里发了一个cffiddle:https://cffiddle.org/app/e20a782a-be90-4e65-83de-e31eb83fdf4f
文档:https://docs.lucee.org/reference/objects/struct/sort.html
<cfscript>
data = {
"a": {"name": 100},
"b": {"name": 50},
"c": {"name": 25},
"d": {"name": 75}
};
dataSorted = data.sort("numeric", "asc", "name")
writeDump(dataSorted);
</cfscript>
结果:数组["c", "b", "d", "a"]
这对我在 lucee 5 上有用。某事。排序函数中的最后一个参数是结构中的 pathToSubElement
。对于您的示例,它只是使用 name
属性.
的一层深度
我正在尝试使用 StructSort 对嵌套结构进行排序。下面是我正在尝试做的一个简单示例。下面的代码不起作用并且 returns 以下错误“指定的元素 a 不包含简单值。”是否可以在 Coldfusion 中对嵌套结构进行排序,如果可以,如何排序?
<cfscript>
data = {"a":{"name":100},"b":{"name":50},"c":{"name":25},"d":{"name":75}};
dataSorted= StructSort(data, function(a,b) {
return compare(a.name, b.name);
});
writeDump(dataSorted);
</cfscript>
预期输出
- c
- b
- d
- 一个
也在这里发了一个cffiddle:https://cffiddle.org/app/e20a782a-be90-4e65-83de-e31eb83fdf4f
文档:https://docs.lucee.org/reference/objects/struct/sort.html
<cfscript>
data = {
"a": {"name": 100},
"b": {"name": 50},
"c": {"name": 25},
"d": {"name": 75}
};
dataSorted = data.sort("numeric", "asc", "name")
writeDump(dataSorted);
</cfscript>
结果:数组["c", "b", "d", "a"]
这对我在 lucee 5 上有用。某事。排序函数中的最后一个参数是结构中的 pathToSubElement
。对于您的示例,它只是使用 name
属性.