Javascript JS脚本中的条件工作错误
我有一个JavaScript: 这是我的密码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("/");
$(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));