Javascript 选择开始日期和结束日期之间的数组中的数据

Javascript 选择开始日期和结束日期之间的数组中的数据,javascript,arrays,google-maps,date,Javascript,Arrays,Google Maps,Date,我有在热图上显示标记的脚本 这是剧本 function getDriving() { markers.length = 0; var todayval = new Date(); var url = $('#map').data('request-url2'); $.getJSON(url, function (data) { $.each(data, function (i, ite

我有在热图上显示标记的脚本

这是剧本

    function getDriving() {
    markers.length = 0;
    var todayval = new Date();
    var url = $('#map').data('request-url2');
    $.getJSON(url,
        function (data) {
            $.each(data,
                function (i, item) {

                    markers.push({
                        'location': new google.maps.LatLng(item.Latitude, item.Longitude),
                        'map': map,
                        'weight': item.Speed,
                        'radius': 10,
                        'date': item.CurrentDateTime,
                        'imei': item.Imei
                    });
                });

            $.each(markers, function (i, marker) {
                var getDate = marker.date.match(/\d/g).join('');
                var markerDate = new Date(parseFloat(getDate));
                console.log(markerDate);
                if (markerDate.getDate() === todayval.getDate()) {
                    todaymarkersfiltered.push(marker);
                }
            });
            var pointArray = new google.maps.MVCArray(todaymarkersfiltered);
            console.log(pointArray);
            heatmap = new google.maps.visualization.HeatmapLayer({
                data: pointArray
            });
            heatmap.setMap(map);
        });
};
 filtered.length = 0;
$('#filter').on('click',
    function () {
        heatmap.setMap(null);
        var startValue = $('#startDate').val().split("/");
        $.each(markers, function (i,marker) {
            var getDate = marker.date.match(/\d/g).join('');
            var markerDate = new Date(parseFloat(getDate));
            var valDate = new Date(startValue[2], startValue[1] - 1, startValue[0]);
            if (markerDate.getDate() === valDate.getDate() && (marker.imei === imei || imei === null)) {
                filtered.push(marker);
            } 
        });
        var pointArray = new google.maps.MVCArray(filtered);
        console.log(pointArray);
        heatmap = new google.maps.visualization.HeatmapLayer({
            data: pointArray
        });
        heatmap.setMap(map);

    }); //filtering by date and imei code of device
鉴于此,我有开始日期和结束日期

现在我只按起始日期过滤

这是剧本

    function getDriving() {
    markers.length = 0;
    var todayval = new Date();
    var url = $('#map').data('request-url2');
    $.getJSON(url,
        function (data) {
            $.each(data,
                function (i, item) {

                    markers.push({
                        'location': new google.maps.LatLng(item.Latitude, item.Longitude),
                        'map': map,
                        'weight': item.Speed,
                        'radius': 10,
                        'date': item.CurrentDateTime,
                        'imei': item.Imei
                    });
                });

            $.each(markers, function (i, marker) {
                var getDate = marker.date.match(/\d/g).join('');
                var markerDate = new Date(parseFloat(getDate));
                console.log(markerDate);
                if (markerDate.getDate() === todayval.getDate()) {
                    todaymarkersfiltered.push(marker);
                }
            });
            var pointArray = new google.maps.MVCArray(todaymarkersfiltered);
            console.log(pointArray);
            heatmap = new google.maps.visualization.HeatmapLayer({
                data: pointArray
            });
            heatmap.setMap(map);
        });
};
 filtered.length = 0;
$('#filter').on('click',
    function () {
        heatmap.setMap(null);
        var startValue = $('#startDate').val().split("/");
        $.each(markers, function (i,marker) {
            var getDate = marker.date.match(/\d/g).join('');
            var markerDate = new Date(parseFloat(getDate));
            var valDate = new Date(startValue[2], startValue[1] - 1, startValue[0]);
            if (markerDate.getDate() === valDate.getDate() && (marker.imei === imei || imei === null)) {
                filtered.push(marker);
            } 
        });
        var pointArray = new google.maps.MVCArray(filtered);
        console.log(pointArray);
        heatmap = new google.maps.visualization.HeatmapLayer({
            data: pointArray
        });
        heatmap.setMap(map);

    }); //filtering by date and imei code of device
但我如何在开始日期和结束日期之间过滤数据

例如,我有2017年11月14日的开始日期和2017年11月16日的结束日期。我需要显示markerDate在此范围内的所有数据。最终数据也将从输入中获取。像这样的var endValue=$'endDate'.val.split/

谢谢你的帮助

您可以简单地使用:

var startValue = new Date($('#startDate').val());
var endValue = new Date($('#endDate').val());

var filtered = markers.filter(function(marker) {
  var markerDate = new Date(marker.date);
  return (markerDate > startValue && markerDate < endValue);
});

你的意思是写这个而不是$.eachmarkers,函数i,marker{var getDate=marker.date.match/\d/g.join;var markerDate=new DateparseFloatgetDate;var valDate=new DatestartValue[2],startValue[1]-1,startValue[0];如果markerDate.getDate==valDate.getDate&&marker.imei==imei | | imei==null{filtered.pushmarker;}}@是的,就是这样。它应该会自动过滤。而且它会将结果推送到由return自动过滤?@S.E是的,就是这样。