【发布时间】:2011-05-30 16:30:39
【问题描述】:
我有以下数组:
var times = [
["04/11/10", "86kg"],
["05/12/11", "90kg"],
["06/12/11", "89kg"]
];
我想按升序列出这些日期及其相应的权重。
我知道您可以使用 sort 对数组进行排序,并且我从 this About.com page 中找到了以下函数,我认为它可以满足我的需求:
times.sort(dmyOrdA);
var dateRE = /^(\d{2})[\/\-](\d{2})[\/\-](\d{2})/;
function dmyOrdA(a,b) {
a = a.replace(dateRE, "$3$2$1");
b = b.replace(dateRE, "$3$2$1");
if (a > b) {
return 1;
}
else if (a < b) {
return -1;
}
else {
return 0;
}
}
但是,使用这个函数给了我以下错误:
a.replace is not a function
有人可以帮忙解答我的问题吗?
提前致谢。
编辑:
查看以前的stack overflow question 似乎在我的情况下'a' 不是字符串。但是,我不明白为什么会这样。
【问题讨论】:
-
因为您的
times数组在您的示例中存储了 3 个数组,而不是字符串(例如["04/11/10", "86kg"])。所以使用排序函数,a和b将是两个数组。
标签: javascript arrays sorting