我有n个数组,需要确定x是否在所有的n个数组中。(其中n是任何数字,而x是一个数值)我已经尝试了以下代码,但结果总是错误的。
function filterArrays()
{
var x = $(this).attr('id'); // ex: 2
var arrays = [[1,2,3],[2,4,6]];
var result = false;
for each (var n in arrays)
{
result = result ^ (n.indexOf(x) > -1);
}
}
当x
同时在两个数组中时,如何使result
等于true
,但当x
不在这两个数组中时,使result
等于false
?
上述函数将与jQuery的filter()
方法一起使用。例如:
$(arrayOfElementsWithNumericIds).filter(arrayFilter);
// arrayOfElementsWithNumericIds prototype: [div#1,div#2,div#3,...]
我认为需要进行位运算,但我可能错了。请解释您的解决方案为什么是正确的,以及为什么我的解决方案不起作用。(如果能提供额外解释就更好了)
for ... in
应该足够了。我唯一要添加的是,在循环中加入一个break
语句,如果result
为false。 - gilly3