之前在网上搜到的找出两个数组中的相同元素不对或者说是有缺陷,自己写了一个,适用于一般的数组,不包括数组元素含有对象的等一些情况。代码如下
//传入两个数组作为参数,寻找两个数组中的相同元素。
function FilterData(a,b)
{ //循环判断数组a里的元素在b里面有没有,有的话就放入新建立的数组中
var result = new Array();
var c=();
for(var i=0;i<;i++)
{
if((a[i].toString())>-1)
{
(a[i]);
}
}
return result;
}
通过indexof这种方法来判断是否包含也是有瑕疵的,比如说"a1"是包含"a"的
var str1="a1";
var str2='a';
(str2)>-1也是正确的,所以说以上代码应该进行优化,不过优化后的代码自己还没测试,一般情况下用上面的代码应该就可以了。
function FilterData(a,b)
{ //循环判断数组a里的元素在b里面有没有,有的话就放入新建立的数组中
var result = new Array();
var c=();
for(var i=0;i<;i++)
{
if((a[i].toString())>-1)
{
for(var j=0;j<;j++)
{
if(a[i]==b[j])
{
(a[i]);
break;
}
}
}
}
return result;
}
当然了,如果改成双重循环判断元素是否相等,则可以适用于所有的情况,即使数组元素有对象的情况也是可以的。