Mic*_*ael 1 coldfusion coldfusion-8
根据这篇博文中的第一个例子,我有一个隐式结构的隐式数组.我的数据实际上非常相似,例如:
<cfset ReportsArray = [
{
Name = "My First Report",
Group = "Group One"
},
{
Name = "My Second Report",
Group = "Group Two"
},
{
Name = "My Third Report"
Group = "Group One"
},
...etc...
]>
Run Code Online (Sandbox Code Playgroud)
我决定以这种格式创建数据,以便稍后可以将新报告推送到任何组中的数组,或者只是在需要时使用新的报告列表重写数组.我想知道是否可以根据结构中的"Group"键对这个数组进行排序,这样我就可以遍历它们并输出如下内容:
第一组
我的第一份报告
我的第三份报告
第二组
我的第二份报告
-
那有意义吗?或者我错了吗?
也许Query对于正确的工作来说是正确的数据类型?使用ColdFusion着名的查询查询,像这样排序数据是小菜一碟.
如果你真的想要对一组对象进行排序,并且你在CF10 +中,那么你很幸运.您可以将ArraySort与回调一起使用:https://wikidocs.adobe.com/wiki/display/coldfusionen/ArraySort .
如果你坚持,这里有一个易于阅读的泡泡排序,可以在CF8中使用:
<cfscript>
function sortReports(reports)
{
var local = {};
local.sorted = false;
local.reportSize = arrayLen(reports);
while (!local.sorted)
{
local.sorted = true;
for (local.i = 1; local.i < local.reportSize ; local.i = local.i + 1)
{
local.report1 = reports[local.i];
local.report2 = reports[local.i + 1];
if (local.report1.group > local.report2.group)
{
arraySwap(reports, local.i, local.i + 1);
local.sorted = false;
}
}
}
return reports;
}
reportsArray = [
{
Name = "My First Report",
Group = "Group One"
},
{
Name = "My Second Report",
Group = "Group Two"
},
{
Name = "My Third Report",
Group = "Group One"
}
];
</cfscript>
<cfdump var="#sortReports(reportsArray)#">
Run Code Online (Sandbox Code Playgroud)
在这里运行:http://www.trycf.com/scratch-pad/pastebin?id = RuSHgZYq
| 归档时间: |
|
| 查看次数: |
357 次 |
| 最近记录: |