我有以下代码。根据用户的搜索日期标准,它将产生以下结果(搜索结果Tampa ...)。它工作正常,但有一种方法我可以排序" CODE"在保持" CODE"的同时按降序排列战术日期?基本上我想"日期:2014年9月4日当天最高概率:47%"成为第一个记录,依此类推。另外,我试过.sort,似乎认为16小于2,我猜是因为它是一个数组?谢谢。
function showResults (results) {
var resultItems = [];
var resultCount = results.features.length;
if (resultCount == 0){
resultItems.push("<p class='reportHeader_font'><b>No data available for this location during the specified date(s).</b></p><br>");
}
else {
resultItems.push("<p class='reportHeader_fontSemiBig'><b>Search Results</b></p>");
resultItems.push("<p class='reportHeader_font'><b>" + addressText + "</b></p><br>");
}
for (var i = 0; i < resultCount; i++) {
var featureAttributes = results.features[i].attributes;
if (attr = "DATE_VAL"){
attr1 = "Date"
var dateVal = "/Date(" + featureAttributes[attr] + ")/"
var date = new Date( parseFloat( dateVal.substr(6 ))).addHours(8);
// Add one day also because the above formula is for midnight GMT which is 6PM of the previous day.
resultDate = (date.getMonth() + 1) + "/" + date.getDate() + "/" + date.getFullYear()
resultItems.push("<b>" + attr1 + ":</b> " + resultDate + "<br>");
}
if (attr = "CODE"){
attr1 = "Highest Probability of the Day"
resultItems.push("<b>" + attr1 + ":</b> " + featureAttributes[attr]*10 + "%" + "<br>");
}
resultItems.push("<br>");
}
dom.byId("info").innerHTML = resultItems.join("");
// Remove the Searching... after the query completes
document.getElementById('wait').innerHTML = "";
}
搜索结果 坦帕,佛罗里达州,美国
日期:2014年9月1日 当天最高概率:19%
日期:2014年9月2日 当天最高概率:27%
日期:2014年9月3日 当天最高概率:21%
日期:2014年9月4日 当天最高概率:47%
日期:2014年9月6日 当天最高概率:37%
答案 0 :(得分:1)
尝试添加以下内容作为showResults
功能的第一行:
results.features.sort(function(a, b) {
return a.attributes.CODE - b.attributes.CODE;
});
答案 1 :(得分:0)
您是否考虑过利用外部库? Underscore有一些非常好的辅助函数用于排序和过滤。
http://underscorejs.org/#sortBy
您还可以从underscore.js
查看indexByvar stooges = [{name: 'moe', age: 40}, {name: 'larry', age: 50}, {name: 'curly', age: 60}];
_.indexBy(stooges, 'age');
=> {
"40": {name: 'moe', age: 40},
"50": {name: 'larry', age: 50},
"60": {name: 'curly', age: 60}
}
你可以通过percantage分离一些关注点和索引你的数组,之后将它绑定到一些html