我正在尝试更改复选框的半径类别/类型过滤器,因此我将var类型更改为数组。
原始工作:
var type;
for (var i = 0; i < document.controls.type.length; i++){
if (document.controls.type[i].checked){
type = document.controls.type[i].value;
}
}
startBox.setBounds(map.getBounds());
var search = {
// keyword: 'comocomo', // not needed with the autocomplete / startBox
bounds: map.getBounds()
};
if (type != 'establishment'){
search.types = [ type ];
}
places.search(search, function(placesArr, status){
THE ARRAY不工作的人:编辑:
var type=[];
for (var i = 0; i < document.controls.type.length; i++){
if (document.controls.type[i].checked){
type.push(document.controls.type[i].value)
}
}
startBox.setBounds(map.getBounds());
var search = {
bounds: map.getBounds()
};
var quotedAndCommaSeparated = "'" + type.join("','") + "'";
alert(quotedAndCommaSeparated); // 'establishment','restaurant','lodging'
search.types = [ quotedAndCommaSeparated ];
我做了很多测试,但我看不出我做错了什么。地图甚至没有显示。
答案 0 :(得分:0)
这意味着什么,对我来说看起来不是有效的Javascript:
var type[];
应该是
var type = [];
修复代码中的javascript错误,否则地图就不会显示。
更新
quotedAndCommaSeparated中的内容是"'a','b','c'"
之类的字符串,看起来有点像数组的内容:['a','b','c']
。但它不是一个数组,它只是一个字符串。如果你检查search.type数组的长度,我猜它等于1.
您可以做的是将字符串拆分为逗号以将其转换为数组:
search.types = quotedAndCommaSeparated.split(",");