js时间日期排序代码实例

var arr = ['2016-09-09', '2015-12-30', '2016-01-04', '2011-09-12'];
Array.prototype.sortFn = function() {
  var arr2 = []
  var json = {};
  for (var index = 0, len = this.length; index < len; index++) {
    json[new Date(this[index]).getTime()] = this[index];
    arr2.push(new Date(this[index]).getTime());
  }
  arr2.sort();
  for (var j = 0; j < arr2.length; j++) {
    this[j] = json[arr2[j]];
  }
  return this;
}
console.log(arr.sortFn())

上面的代码实现了我们的要求,下面介绍一下它的实现过程。

一.代码注释:

(1).var arr = [‘2016-09-09’, ‘2015-12-30’, ‘2016-01-04’, ‘2011-09-12’],数组存储的是要排序的时间日期。

(2).Array.prototype.sortFn = function() {},为数组对象实例添加一个实例方法,它实现了排序效果。

(3).var arr2 = [],声明一个数组用来声明时间戳。

(4).var json = {},声明一个对象,对象属性是时间戳,属性值是时间日期在原数组中的索引。

(5).for (var index = 0, len = this.length; index < len; index++) {},通过for循环进行遍历。

(6).json[new Date(this[index]).getTime()] = this[index],时间戳作为属性,日期作为属性值。

(7).arr2.push(new Date(this[index]).getTime()),把时间戳压入数组。

(8).arr2.sort(function sortFunction(a,b){

return a-b;

}),实现数组值由小到大排序。

(9).for (var j = 0; j < arr2.length; j++) {

arr[j] = json[arr2[j]];

}

(10).for (var j = 0; j < arr2.length; j++) {

this[j] = json[arr2[j]];

},由于arr2中的时间戳是由小到大排序的,所以arr数组的内容也会被重置为由小到大排序。

(11).return this,可以实现链式调用。

转载于:http://www.softwhy.com/article-7210-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值