按范围日期JS

时间:2018-01-10 14:29:02

标签: javascript json date filtering

我想按日期范围过滤简单的JSON文件。 有开始日期和结束日期。

这是我的职责:

var startDate = new Date("2013-3-25");
var endDate = new Date("2017-3-25");
var aDate = new Date();

var filteredData = this.orders.filter(function(a){
aDate = new Date(a.fecha);
    aDate >= startDate && aDate <= endDate;
});
console.log(filteredData)

这是我的:fiddle

我希望在我的数组中获得一个对象,但是数组是空的,因为你可以在控制台中找到它。

3 个答案:

答案 0 :(得分:4)

在数组上使用filter方法时,该函数需要返回一个布尔值,以指示脚本是保留值还是删除它。

您没有从过滤器功能中返回值。这有效:

var filteredData = this.orders.filter(function(a){
    aDate = new Date(a.fecha);
    return aDate >= startDate && aDate <= endDate;
});

答案 1 :(得分:3)

  

但是数组是空的,因为你可以在控制台中找到它。

由于filter的回调方法没有返回任何内容,请将其设为

var filteredData = this.orders.filter(function(a){
    var aDate = new Date(a.fecha);
    return aDate.getTime() >= startDate.getTime() && aDate.getTime() <= endDate.getTime();
});

注意

  • 日期比较方式不同,请检查this answer
  • 每次迭代都不需要getTime()startDate endDate,在filter
  • 之前执行一次

答案 2 :(得分:0)

您没有在过滤器中返回任何内容。

columns = ['a', "b","cin",'cout', 'din', 'dout']
rows = [[1 , 1, 3, 4, 2, 3], [2,3,3,1, 8 , 4], [3,1,3,1, 2, 1]]
dff1 = pd.DataFrame(rows, columns=columns)

供参考,https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter