从数组中获取最大和最小日期
Get max and min dates from an array
我的样本数据如下:
data = [
[1, 622, 782, 783, "2015-04-21"],
[2, 622, 782, 783, "2015-04-21"],
[3, 622, 782, 783, "2015-04-22"],
[4, 622, 782, 783, "2015-04-23"],
[5, 622, 782, 783, "2015-04-24"],
[6, 622, 782, 783, "2015-04-28"],
[7, 622, 782, 783, "2015-04-28"],
[8, 622, 782, 783, "2015-04-29"],
[9, 622, 782, 783, "2015-05-04"],
[10, 622, 782, 783, "2015-05-05"]
]
如何从上述数据中获得最大日期值和最小日期值?数据可能没有排序。
1)使用map
提取dates
:
var dates = data.map(function(x) { return new Date(x[4]); })
2)使用Math.max
/Math.min
获取最高/最低日期:
var latest = new Date(Math.max.apply(null,dates));
var earliest = new Date(Math.min.apply(null,dates));
var data = [
[1, 622, 782, 783, "2015-04-21"],
[2, 622, 782, 783, "2015-04-21"],
[3, 622, 782, 783, "2015-04-22"],
[4, 622, 782, 783, "2015-04-23"],
[5, 622, 782, 783, "2015-04-24"],
[6, 622, 782, 783, "2015-04-28"],
[7, 622, 782, 783, "2015-04-28"],
[8, 622, 782, 783, "2015-04-29"],
[9, 622, 782, 783, "2015-05-04"],
[10, 622, 782, 783, "2015-05-05"]
];
var minIdx = 0, maxIdx = 0;
for(var i = 0; i < data.length; i++) {
if(data[i][4] > data[maxIdx][4]) maxIdx = i;
if(data[i][4] < data[minIdx][4]) minIdx = i;
}
alert('Max: ' + maxIdx + ', ' + data[maxIdx][4]);
alert('Min: ' + minIdx + ', ' + data[minIdx][4]);
试试这个,它会帮助你:
$(document).ready(function(){
var data = [
[10, 622, 782, 783, "2015-05-05"],
[1, 622, 782, 783, "2015-04-21"],
[2, 622, 782, 783, "2015-04-21"],
[3, 622, 782, 783, "2015-04-22"],
[4, 622, 782, 783, "2015-04-23"],
[5, 622, 782, 783, "2015-04-24"],
[6, 622, 782, 783, "2015-04-28"],
[7, 622, 782, 783, "2015-04-28"],
[8, 622, 782, 783, "2015-04-29"],
[9, 622, 782, 783, "2015-05-04"],
];
var dates = [];
var max_date='';
var min_date='';
$.each(data, function(k,v){
dates.push(v.pop());
dates.sort(function(a,b){
return new Date(a)- new Date(b);
});
max_date = dates[dates.length-1];
min_date = dates[0];
});
console.log('max_date : '+max_date);
console.log('min_date : '+min_date);
})
工作示例
var a = [
[1, 622, 782, 783, "2015-04-21"],
[2, 622, 782, 783, "2015-04-21"],
[3, 622, 782, 783, "2015-04-22"],
[4, 622, 782, 783, "2015-04-23"],
[5, 622, 782, 783, "2015-04-24"],
[6, 622, 782, 783, "2015-04-28"],
[7, 622, 782, 783, "2015-04-28"],
[8, 622, 782, 783, "2015-04-29"],
[9, 622, 782, 783, "2015-05-04"],
[10, 622, 782, 783, "2015-05-05"]
];
var max = a[0][4];
var min = a[0][4];
for (var i = 0; i < a.length; i++) {
if (a[i][4] > max) {
max = a[i][4];
} else if (a[i][4] < min) {
min = a[i][4];
}
}
console.log(max);
console.log(min);
此处引用
使用Math.min()和Math.max()函数和Array。。
JS: View jsFiddle
data = [
[1, 622, 782, 783, "2015-04-21"],
[2, 622, 782, 783, "2015-04-21"],
[3, 622, 782, 783, "2015-04-22"],
[4, 622, 782, 783, "2015-04-23"],
[5, 622, 782, 783, "2015-04-24"],
[6, 622, 782, 783, "2015-04-28"],
[7, 622, 782, 783, "2015-04-28"],
[8, 622, 782, 783, "2015-04-29"],
[9, 622, 782, 783, "2015-05-04"],
[10, 622, 782, 783, "2015-05-05"]
];
dates = []; // Array store only dates
for (i = 0; i < data.length; i++) {
dates.push(new Date(data[i][4]));
}
console.log(dates);
Array.prototype.max = function() { // find max dates
return Math.max.apply(null, this);
};
Array.prototype.min = function() { // find min dates
return Math.min.apply(null, this);
};
alert("Max: "+new Date(dates.max())+"'n'n"+
"Min: "+ new Date(dates.min()));
var data = [
[1, 622, 782, 783, "2015-04-21"],
[2, 622, 782, 783, "2015-04-21"],
[3, 622, 782, 783, "2015-04-22"],
[4, 622, 782, 783, "2015-04-23"],
[5, 622, 782, 783, "2015-04-24"],
[6, 622, 782, 783, "2015-04-28"],
[7, 622, 782, 783, "2015-04-28"],
[8, 622, 782, 783, "2015-04-29"],
[9, 622, 782, 783, "2015-05-04"],
[10, 622, 782, 783, "2015-05-05"]
];
var dates = [];
for (var i=0;i<data.length;i++) {
dates.push(data[i][4]);
}
//sort the date
dates.sort(function(a,b){
// Turn your strings into dates, and then subtract them
// to get a value that is either negative, positive, or zero.
return new Date(b.date) - new Date(a.date);
});
// get min and max
var min_date = dates[0];
var max_date = dates.slice(-1)[0]
var data = [
[1, 622, 782, 783, "2015-04-21"],
[2, 622, 782, 783, "2015-04-21"],
[3, 622, 782, 783, "2015-04-22"],
[4, 622, 782, 783, "2015-04-23"],
[5, 622, 782, 783, "2015-04-24"],
[6, 622, 782, 783, "2015-04-28"],
[7, 622, 782, 783, "2015-04-28"],
[8, 622, 782, 783, "2015-04-29"],
[9, 622, 782, 783, "2015-05-04"],
[10, 622, 782, 783, "2015-05-05"]
];
var di = 4,
maxd = mind = data[0][di];
var min = max = new Date(maxd).getTime(),
dt, i = data.length;
while (i--) {
dt = new Date(data[i][di]).getTime();
if (dt > max) {
max = dt;
maxd = data[i][di];
}
if (dt < min) {
min = dt;
mind = data[i][di];
}
}
console.log('min', mind, 'max', maxd);
相关文章:
- 如何从Angularjs中的新日期获取日期格式
- 算法:从数组(javascript/angular)中按当前日期获取上一个和下一个事件
- 从javascript中的日期获取月份号
- 从datetimepicker引导程序上点击的日期获取点击事件
- 如何在JS中从Y-m-d日期获取unix时间戳
- 从getTime()类型的日期获取日期和时间,以显示mySQL数据库中的日期
- 使用 Jquery 从日期获取星期几
- 如何在没有周末的情况下添加天数以从当前日期获取下一个日期
- 从服务器返回的日期获取星期几
- 如何使用 momentjs 从日期获取日期名称
- 时刻.js从日期获取日期名称
- 我想在 JavaScript 中使用日期函数将日期获取为 9 月 8 日星期日上午 11:46
- 从当前日期获取GMT字符串
- 为什么angularjs摘要使用日期获取函数进入无限循环
- 从格式化日期获取UTC时间戳-javascript
- 如何在codebehind中为Datepicker设置日期/获取日期
- 如何在asp.net/c#中从两个开始和结束自定义日期获取周数
- 从给定的开始日期获取结束日期
- 在javascript中使用当前日期获取两周日期
- 日期获取自定义周开始日的周数