Javascript JS脚本中的条件工作错误

Javascript JS脚本中的条件工作错误,javascript,google-maps,Javascript,Google Maps,我有一个JavaScript: 这是我的密码 $(document).ready(function () { filtered.length = 0; $('#filter').on('click', function () { heatmap.setMap(null); imei = $('#selectVehicles').val(); var startValue = $('#startDate').val().split("/");

我有一个JavaScript:

这是我的密码

$(document).ready(function () {
filtered.length = 0;
$('#filter').on('click',
    function () {
        heatmap.setMap(null);
        imei = $('#selectVehicles').val();
        var startValue = $('#startDate').val().split("/");
        var endValue = $('#endDate').val().split("/");
        var valDateStart = new Date(startValue[2], startValue[1] - 1, startValue[0]);
        var valDateEnd = new Date(endValue[2], endValue[1] - 1, endValue[0]);
       filtered = markers.filter(function (marker) {
          var getDate = marker.date.match(/\d/g).join('');
          var markerDate = new Date(parseFloat(getDate));
          return ((markerDate >= valDateStart && markerDate <= valDateEnd) && marker.imei === imei);
        });
        var pointArray = new google.maps.MVCArray(filtered);
        console.log(pointArray);
        heatmap = new google.maps.visualization.HeatmapLayer({
            data: pointArray
        });
        heatmap.setMap(map);

    });
$(文档).ready(函数(){
过滤长度=0;
$(“#过滤器”)。在('单击'),
函数(){
heatmap.setMap(空);
imei=$(“#选择车辆”).val();
var startValue=$('#startDate').val().split(“/”);
var endValue=$('#endDate').val().split(“/”);
var valDateStart=新日期(起始值[2],起始值[1]-1,起始值[0]);
var valDateEnd=新日期(endValue[2],endValue[1]-1,endValue[0]);
筛选=标记。筛选(函数(标记){
var getDate=marker.date.match(/\d/g).join(“”);
var markerDate=新日期(parseFloat(getDate));
return((markerDate>=valDateStart&&markerDate=valDateStart&&markerDate我认为这是因为.val()在读取imei时将返回一个字符串

marker对象中的imei是一个数字,您使用了精确匹配运算符===。请在.val()的imei值周围使用==或parseInt()进行尝试,例如

你的问题是:

 return ((markerDate >= valDateStart && markerDate <= valDateEnd) && marker.imei === imei);
=表示值相等:

   var 1 = "1";
    var 2 = "2";
    var 3 = 3;
    1 == 2 //correct
    1 == 3 //correct
使用cast以使其正常工作:

 return ((markerDate >= valDateStart && markerDate <= valDateEnd) && marker.imei === parseInt(imei));
返回((markerDate>=valDateStart&&markerDate)
var 1 = "1";
var 2 = "2";
var 3 = 3;
1 === 2 //correct
1 === 3 //false
   var 1 = "1";
    var 2 = "2";
    var 3 = 3;
    1 == 2 //correct
    1 == 3 //correct
 return ((markerDate >= valDateStart && markerDate <= valDateEnd) && marker.imei === parseInt(imei));