排序日期对象数组错误javascript
sorting array of date objects error javascript
我遇到了一个奇怪的错误,无法解决。我有一个日期对象数组(AngularJS),我想对它们进行排序。我正在做以下
console.log(tempDates);
tempDates.sort( function(a, b) {
return a-b;
});
console.log(tempDates);
问题是tempDates数组正在被修改,即日期值正在被修改。自定义排序功能错误吗?/我错过了什么?
原始tempDates-
["Jun 19", "Jun 26", "Jul 3", "Jul 10", "Jul 17", "Jul 24", "Jul 31", "Aug 7", "Aug 14", "Aug 21", "Aug 28", "Sep 4", "Sep 11"]
分拣后是
["Jun 19", "Jun 26", "Jul 1", "Jul 3", "Jul 10", "Jul 17", "Jul 24", "Aug 7", "Aug 14", "Aug 21", "Aug 28", "Sep 4", "Sep 11"]
(请注意,数组由DATE对象组成,我放置的控制台输出只是为了可读性)
日期在变化,比如"7月1日"突然出现,"7月31日"从名单中删除。发生这种情况的原因是什么?
您排序的是日期对象,而不是数字。要将它们排序为数字,您必须执行以下操作:
console.log(tempDates);
tempDates.sort( function(a, b) {
return a.getTime() - b.getTime();
});
console.log(tempDates);
.getTime()将把日期的字符串表示形式转换为实际数字。(自1970/01/01以来的毫秒)
相关文章:
- object响应时出现对象错误javascript
- 未捕获的语法错误:javascript对象上出现意外的标记ILLEGAL
- Phonegap-Android 4.4-html5音频长度错误(javascript和媒体插件)
- 未捕获的语法错误:javascript中出现意外的标记}
- 如何从 MVC4 链接调用 Javascript 方法(错误 JavaScript 运行时错误:对象不支持此操作)
- 未捕获类型错误javascript方法
- 将字符串返回到类型为“0”的输出字段;数字“;针对用户错误javascript
- 解析器错误(Javascript初学者寻找解决方案)
- IE 错误 .JavaScript 运行时错误:对象不支持属性或方法“preventDefault”
- appendChild 不是函数错误 (JAVASCRIPT)
- 错误 JavaScript 函数
- 而循环抛出错误JavaScript
- 意外的类型错误 - Javascript,多维数组
- 语法错误:Javascript 中的意外令牌/将数据发布到 Amazon s3
- 语法错误:Javascript 中缺少指数
- 错误“JavaScript 运行时错误:查找滚动位置时无法获取未定义或空引用的属性'scrollLeft'”
- 错误 JavaScript 循环数组
- 错误:Javascript 上的 [对象对象]
- IndexedDBShim.js错误:JavaScript运行时错误:在严格模式下不允许分配只读属性
- 在Evernote listNotebooks API上获取错误-Javascript/Node.Js