首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多个数组组合在一起的jQuery循环- Mapbox map.setFilter()

将多个数组组合在一起的jQuery循环- Mapbox map.setFilter()
EN

Stack Overflow用户
提问于 2015-12-09 21:12:48
回答 1查看 149关注 0票数 0

Mapbox的新GL被证明很难使用。我想知道是否可以通过jQuery的每个函数构建一个具有这种奇怪格式的数组。

我正在为类别创建一个带有复选框的表单,用于筛选地图上显示的标记。我使用一个$.each()循环来获取检查的输入,获取它们的ID,并将其抛到每个数组的中间。一个检查的输入是一个数组。

基本上,我需要将数组按如下方式排列:

代码语言:javascript
复制
map.setFilter('markers', ["any",
   ['in',c1,true],
   ['in',c2,true], // these 3 arrays
   ['in',c3,true]
] );

但是很明显,我需要动态的检查。下面是我想使用的不完整的jQuery:

代码语言:javascript
复制
jQuery('input.checkbox-child').change(function(){
    args = new Array();
    jQuery('input.checkbox:checked').each(function(){
        id = jQuery(this).attr('id');
        filter = ['in',id,true];
        // ???
    });
    map.setFilter('markers', ["any", args] );

});

不确定如何将filter变量连接在一起形成一个逗号分隔的数组列表,类似于用于setFilter函数的['in',id,true],['in',id,true],['in',id,true]...

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-09 22:06:01

我认为这应该对你想要的东西有用

代码语言:javascript
复制
var args = [];
jQuery('input.checkbox-child').change(function(){
    jQuery('input.checkbox:checked').each(function(){
        var id = jQuery(this).attr('id');
        var filter = ['in',id,true];
        args.push(filter);
    });
    map.setFilter('markers', ["any"].concat(args));
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34189078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档