0

我正在尝试更改复选框的半径类别/类型过滤器,因此我将 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){

阵列不起作用的那个:编辑:

    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 ];

我做了很多测试,我看不出我做错了什么。地图甚至没有显示。

4

1 回答 1

0

这是什么意思,对我来说看起来不像是有效的 Javascript:

var type[];

应该

var type = [];

修复代码中的 javascript 错误,否则地图将不会显示。

更新:

您在quotedAndCommaSeparated 中拥有的是一个"'a','b','c'"看起来有点像数组内容的字符串:['a','b','c']。但它不是一个数组,它只是一个字符串。如果您检查 search.type 数组的长度,我猜它等于 1。

你可以做的是用逗号分割你的字符串,把它变成一个数组:

search.types = quotedAndCommaSeparated.split(",");
于 2013-11-11T12:44:04.530 回答