我有以下数据:
arTicker = [];
arTicker[1] = { "vid" : 100,
"symbol" : "apple" };
arTicker[2] = { "vid" : 101,
"symbol" : "dell" };
arTicker[3] = { "vid" : 102,
"symbol" : "ibm" };
arTicker[4] = { "vid" : 110,
"symbol" : "apple" };
arTicker[5] = { "vid" : 95,
"symbol" : "apple" };
arTicker[6] = { "vid" : 115,
"symbol" : "samsung" };
arTicker[7] = { "vid" : 121,
"symbol" : "dell" };
arTicker[8] = { "vid" : 97,
"symbol" : "apple" };
arTicker[9] = { "vid" : 107,
"symbol" : "ibm" };
我正在尝试按符号名称对该数组进行排序,并包括该符号的最大视频数。这样做,这就是我想要的输出:
apple | 110
dell | 121
ibm | 107
samsung | 115
这是我尝试过的
arraySort(
arTicker,
function (e1, e2){
return compare(e1.symbol, e2.symbol) // && e1.vid < e2.vid;
}
);
writeDump(arTicker);
有什么建议吗?
这个可能会有所帮助。
<cfscript>
arTicker = [];
arTicker[1] = { "vid" : 100, "symbol" : "apple" };
arTicker[2] = { "vid" : 101, "symbol" : "dell" };
arTicker[3] = { "vid" : 102, "symbol" : "ibm" };
arTicker[4] = { "vid" : 110, "symbol" : "apple" };
arTicker[5] = { "vid" : 95, "symbol" : "apple" };
arTicker[6] = { "vid" : 115, "symbol" : "samsung" };
arTicker[7] = { "vid" : 121, "symbol" : "dell" };
arTicker[8] = { "vid" : 97, "symbol" : "apple" };
arTicker[9] = { "vid" : 107, "symbol" : "ibm" };
arraySort(
arTicker,
function (e1, e2){
return compare(e1.symbol & '-' & numberFormat(e1.vid,'0000'), e2.symbol & '-' & numberFormat(e2.vid,'0000'));
}
);
writeDump(arTicker);
</cfscript>
我正在组合
symbol
和 vid
并将组合作为字符串进行比较。由于 vid
是一个数字,我用 0
填充它们,使其长度相同,这样数字作为字符串的排序就不会引起问题。