gpt4 book ai didi

javascript - jQuery 循环将多个数组放在一起 - Mapbox map.setFilter()

转载 作者:行者123 更新时间:2023-12-03 08:09:56 27 4
gpt4 key购买 nike

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

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

基本上,我需要将数组放在一起:

map.setFilter('markers', ["any",
['in',c1,true],
['in',c2,true], // these 3 arrays
['in',c3,true]
] );

但显然,我需要在检查时动态完成此操作。这是我想使用的不完整的 jQuery:

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 变量连接在一起以形成逗号分隔的数组列表,类似于 ['in',id,true],['in', id,true],['in',id,true]... 用于 setFilter 函数。

最佳答案

我认为这应该适合你想要的

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));
});

关于javascript - jQuery 循环将多个数组放在一起 - Mapbox map.setFilter(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34189078/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com