js 得到两个数组中相同的 数据

var a = [1,2,3,4,5,6,7];

var b = [1,2,5];

var c = [];

var tmp = a.concat(b);

var o = {};

for (var i = 0; i < tmp.length; i ++) (tmp[i] in o) ? o[tmp[i]] ++ : o[tmp[i]] = 1;

for (x in o) if (o[x] == 1) c.push(x);

alert(c);

Javascript怎么比较两个数组是否相同?
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>

猜你喜欢

转载自blog.csdn.net/qq_39510043/article/details/86010704