JavaScript 中 2个数组对比取 相同的元素,代码该怎么写

JavaScript032

JavaScript 中 2个数组对比取 相同的元素,代码该怎么写,第1张

如果数组中个元素是字符串,这么做方便,如果不是,那就用@lyw_2008_happy的方法就行

var arr1 = ['a','b','c','d'] 

var arr2 = ['x','b','c','y']

var long = arr1.length<arr2.length?arr2:arr1

var short = arr1.length<arr2.length?arr1:arr2

var str = ","+long.toString()+","

var result=[]

for(var i in short){

    if(str.indexOf(","+short[i]+",")>=0){

        result.push(short[i])

    }

}

alert(result.toString())

var str1 = [1,2,3,4,5,6,7]//已知数组

var str2 = [1,2,5,4,8,9]//对比数据

var c = []//相同集合

var num//相同的有多少个

for (var i = 0i <str1.lengthi ++) {

//第一次循环处理第一组数组,

for (var y = 0y <str2.lengthy ++) {

//第二次循环保证外面一次循环,里面第二次全部循环一次

if(str1[i]===str2[y]){

//得到相同项

c.push(str1[i])

num=c.length

}

}

}

alert(c)

alert(num)

//也是写JS的,有时间多交流啊

Javascript不能直接用==或者===来判断两个数组是否相等,无论是相等还是全等都不行,以下两行JS代码都会返回false<script type="text/javascript">alert([]==[])alert([]===[])</script>要判断JS中的两个数组是否相同,需要先将数组转换为字符串,再作比较。以下两行代码将返回true<script type="text/javascript">alert([].toString()== [].toString())alert([].toString()===[].toString())</script>JS要比较两个数组是否有相同的元素,即两个数组所有元素都相同,但元素的顺序不一定一致。只就需要先将数组进行排序,再比较两个数组是否相等。试比较以下两行代码:<script type="text/javascript">alert([1,2,3].toString()== [3,2,1].toString())alert([1,2,3].sort().toString()== [3,2,1].sort().toString())</script>