【发布时间】:2011-03-18 18:57:11
【问题描述】:
我有两个数组:
var arr1 = ["1", "2", "3"],
arr2 = ["2", "5", "8"];
确定 arr1 中的任何元素是否与 arr2 中的任何元素匹配的最佳方法是什么?
我正在使用 jquery,所以现在我正在循环 arr1 并调用 $.inArray(arr1[i], arr2);,但我很好奇是否有更好的方法。
编辑
如果有人对我的确切情况感到好奇,这是一个谷歌地图,我在其中循环标记以查看是否在与标记一起存储的类型中找到任何过滤类型。如果找到任何东西,我会显示标记。否则它是隐藏的。 [此代码有效 - 将很快使用大量标记进行测试]
var filters = $("#map-search :checked").map(function () {
return this.value;
}).get(),
markerIndex = 0;
for (markerIndex; markerIndex < AKTA.Map.markers.length; markerIndex++) {
var marker = AKTA.Map.markers[markerIndex],
isVisible = false;
if (filters.length > 0) {
var filterIndex = 0;
for (filterIndex; filterIndex < filters.length; filterIndex++) {
if ($.inArray(filters[filterIndex], marker.types) != -1) {
isVisible = true;
break;
}
}
}
marker.setVisible(isVisible);
}
【问题讨论】:
-
不完整:inArray 在 1.5.1 的 core.js 中。
-
我假设您只是在显示核心代码,因为这是在 1.2 中添加的。
标签: javascript jquery arrays