我在使用 JQuery 的 $.inArray 函数时遇到了问题(我也尝试过 indexOf)
我的代码:
var branches = circles[i].branches;
var counter = 0;
for (var j = 0; j < branches.length; j++) {
var circle_branch = branches[j];
var index = $.inArray( circle_branch, activeBranchSettings);
if (index == -1)counter++;
}
if(counter == 0) circles[i].setMap(map);
所以我正在使用 Google Maps API,并且我有一个包含一些类别(分支)的控制面板,我可以在其中切换标记。每个圆圈(标记)可以有多个分支,并且这些 ID 附加到每个圆圈。因此,我循环遍历分支,并希望在另一个数组 (activeBranchSettings) 中找到该 ID,每次没有匹配时,我都会增加一个计数器。如果计数器最后为 0,我就会打开圆圈。因此,这告诉我们哪些标记不应该显示,哪些标记应该显示。
无论这是否是解决问题的完美方法,问题在于
var index = $.inArray( circle_branch, activeBranchSettings);
每次都返回-1! 该值位于数组中的该点,我尝试使用 .toString() 将“circle_branch”转换为字符串,但仍然没有变化,有什么想法吗?
最佳答案
这些测试用例运行良好。 因此,也许比较数据类型 (typeof(variable)) 是发现问题的一个步骤
<script type="text/javascript">
var arr = new Array('a', 'b', 'c', 'd');
var look = new Array('d', 'b');
for(var i=0; i<arr.length; i++)
alert($.inArray( arr[i], look));
</script>
关于Javascript 在数组中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14226501/