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,可以实现链式调用。

二.相关阅读:

(1).prototype参阅javascript prototype原型一章节。

(2).getTime()参阅javascript getTime()一章节。

(3).push()参阅javascript push()一章节。

(4).sort()参阅javascript sort()一章节。

js时间日期排序代码实例,这样的场景在实际项目中还是用的比较多的,关于js时间日期排序代码实例就介绍到这了。

js时间日期排序代码实例属于前端实例代码,有关更多实例代码大家可以查看

回复

我来回复
  • 暂无回复内容