【发布时间】:2018-04-04 18:26:23
【问题描述】:
我有一个要在图表中显示的数据列表,我希望这些数据按字母顺序显示。当数据点都是单词(例如“white”、“asian”、“african American”)时,我的排序功能可以正常工作,但是当我的数据点包含数字时(例如“1”、“10”、“
var series = response.series;
series = series.sort(function(a, b) {
var textA = a.name.toLowerCase();
var textB = b.name.toLowerCase();
console.log("Comparing " + textA + " to " + textB);
var returnVal = (textA < textB) ? -1 : (textA > textB) ? 1 : 0;
console.log(returnVal);
return returnVal;
});
我可以从控制台日志中看到比较似乎正确比较,但是当我在排序后再次检查系列时,它和以前一样。这是我的数据的更大示例:
series = [
{name: "1"}
{name: "10"}
{name: "11"}
{name: "12"}
{name: "13"}
{name: "2"}
{name: "3"}
{name: "4"}
{name: "5"}
{name: "6"}
{name: "7"}
{name: "8"}
{name: "9"}
{name: "<1"}
{name: "Total 18 and below"}
]
【问题讨论】:
-
你是在排序字符串,而不是数字
-
可能重复排序的东西数组,而不是对象数组,但听起来你要求一个字母数字排序实现。
标签: javascript jquery string sorting string-comparison