我想在带有过滤功能的谷歌地图上放置标记。如果过滤器只需要检查一个值,我的代码就可以正常工作。但是,如果我想检查过滤器返回的值是否在该数组中,那么不幸的是,代码不起作用。
下面是我的代码: https://jsfiddle.net/7o8w2eaq/
所以我想帮助的代码片段:
filterMarkersEres = function (eres) {
for (i = 0; i < gmarkers1.length; i++) {
marker = gmarkers1[i];
var ereshonap = marker.eres;
let igaze = ereshonap.includes(eres);
//ereshonap.includes(eres);
console.log(igaze);
// If is same category or category not picked
if (ereshonap.includes(eres) || eres.length === 0) {
//
marker.setVisible(true);
}
// Categories don't match
else {
marker.setVisible(false);
}
}
};
所以我想让成熟时间过滤器工作几个月。我想我应该检查一下是否&;marker。eres&;包含所选月份的值,但我不知道是如何包含的。所以我想请求帮助。
我希望我说得很清楚,提前谢谢你!
谢谢,它已经根据评论工作了!
@GrafiCode指出,ereshonap
数组包含数字,而eres
是字符串。因此,在检查字符串是否在数组中之前,我需要使用parseInt(eres)
将字符串转换为整数。
filterMarkersEres = function (eres) {
for (i = 0; i < gmarkers1.length; i++) {
marker = gmarkers1[i];
var ereshonap = marker.eres;
// If is same category or category not picked
if (ereshonap.includes(parseInt(eres)) || eres.length === 0) {
marker.setVisible(true);
} else { // Categories don't match
marker.setVisible(false);
}
}
}
使用console.log(variable.isArray());如果为真,则为数组;如果为假,则为非数组