使用查询排序
Using QuerySort
我正在尝试使用 ColdFusion 2016 查询排序
我的排序基于 Raymond Camden 的数组排序
http://www.raymondcamden.com/2012/08/14/Another-ColdFusion-10-Closures-Post/
<cfscript>
qryTest = QueryNew("ID,Name");
qryTest.AddRow([
{id=1,name="One"},
{id=2,name="Two"},
{id=3,name="Three"},
{id=4,name="Four"}
]);
qryTest.sort(function(a, b) {
return a.name > b.name;
});
writedump(qryTest);
</cfscript>
这是一个错误还是我做错了?或者 sort 成员函数与 QuerySort()
不一样
Ray 的示例是针对 CF10 beta 的。看到这个 comment。在 CF10+ 版本中,比较器 必须 return 1、0 或 -1。
用这个。当做 a.name > b.name
时,它只是 returns true
/false
。你需要return1
/-1
。
<cfscript>
qryTest = QueryNew("ID,Name");
qryTest.AddRow([
{id=1,name="One"},
{id=2,name="Two"},
{id=3,name="Three"},
{id=4,name="Four"}
]);
qryTest.sort(function(a, b) {
return a.name > b.name ? 1 : -1;
});
writedump(qryTest);
</cfscript>
我正在尝试使用 ColdFusion 2016 查询排序
我的排序基于 Raymond Camden 的数组排序
http://www.raymondcamden.com/2012/08/14/Another-ColdFusion-10-Closures-Post/
<cfscript>
qryTest = QueryNew("ID,Name");
qryTest.AddRow([
{id=1,name="One"},
{id=2,name="Two"},
{id=3,name="Three"},
{id=4,name="Four"}
]);
qryTest.sort(function(a, b) {
return a.name > b.name;
});
writedump(qryTest);
</cfscript>
这是一个错误还是我做错了?或者 sort 成员函数与 QuerySort()
Ray 的示例是针对 CF10 beta 的。看到这个 comment。在 CF10+ 版本中,比较器 必须 return 1、0 或 -1。
用这个。当做 a.name > b.name
时,它只是 returns true
/false
。你需要return1
/-1
。
<cfscript>
qryTest = QueryNew("ID,Name");
qryTest.AddRow([
{id=1,name="One"},
{id=2,name="Two"},
{id=3,name="Three"},
{id=4,name="Four"}
]);
qryTest.sort(function(a, b) {
return a.name > b.name ? 1 : -1;
});
writedump(qryTest);
</cfscript>