按内部的另一个对象值对对象进行排序
Sort object by another object value inside
这是我的应用程序中的一些复杂排序。
现在我的数据对象如下(称为 pCList
):
Object[0]:
Id: 1
comp: Test
med: xyz
condition: valueObject.Condition
Object[1]:
Id: 2
comp: Test1
med: pqr
condition: valueObject.Condition
Object[2]:
Id: 3
comp: Test
med: abc
condition: valueObject.Condition
condition VO
有这样的数据:
condition data1:
conId: 001
cond: abcds
condition data2:
conId: 001
cond: trdfd
condition data3:
conId: 001
cond: dsdsds
对于正常排序,我将按照以下方式进行;
var sort:ISort = new Sort();
var sortField:ISortField = new SortField("med");
sort.fields = [sortField];
if(pCList != null)
{
pCList.sort = sort;
pCList.refresh();
}
其中 pcList
按 med 排序。
但是现在,我想按 condition.cond
排序
就像先到先得 cond
值 abcds
然后 dsdsds
然后 trdfd 等等...
我试过使用:
var sort:ISort = new Sort();
var sortField:ISortField = new SortField("condition.cond");
sort.fields = [sortField];
但是没有成功。任何帮助是极大的赞赏。
ISort
有一个 属性 compareFunction
,可用于自定义排序。请参阅下面的示例。
var sort:ISort = new Sort();
sort.compareFunction = function(a:Object, b:Object, fields:Array = null):int {
var conditionA:String = a.Condition.cond;
var conditionB:String = b.Condition.cond;
if (conditionA < conditionB) {
return -1;
} else if (conditionA > conditionB) {
return 1;
} else {
return 0;
}
};
这是我的应用程序中的一些复杂排序。
现在我的数据对象如下(称为 pCList
):
Object[0]:
Id: 1
comp: Test
med: xyz
condition: valueObject.Condition
Object[1]:
Id: 2
comp: Test1
med: pqr
condition: valueObject.Condition
Object[2]:
Id: 3
comp: Test
med: abc
condition: valueObject.Condition
condition VO
有这样的数据:
condition data1:
conId: 001
cond: abcds
condition data2:
conId: 001
cond: trdfd
condition data3:
conId: 001
cond: dsdsds
对于正常排序,我将按照以下方式进行;
var sort:ISort = new Sort();
var sortField:ISortField = new SortField("med");
sort.fields = [sortField];
if(pCList != null)
{
pCList.sort = sort;
pCList.refresh();
}
其中 pcList
按 med 排序。
但是现在,我想按 condition.cond
排序
就像先到先得 cond
值 abcds
然后 dsdsds
然后 trdfd 等等...
我试过使用:
var sort:ISort = new Sort();
var sortField:ISortField = new SortField("condition.cond");
sort.fields = [sortField];
但是没有成功。任何帮助是极大的赞赏。
ISort
有一个 属性 compareFunction
,可用于自定义排序。请参阅下面的示例。
var sort:ISort = new Sort();
sort.compareFunction = function(a:Object, b:Object, fields:Array = null):int {
var conditionA:String = a.Condition.cond;
var conditionB:String = b.Condition.cond;
if (conditionA < conditionB) {
return -1;
} else if (conditionA > conditionB) {
return 1;
} else {
return 0;
}
};