JavaScript如何比较两个数组的内容是否相同

JavaScript09

JavaScript如何比较两个数组的内容是否相同,第1张

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>

有一说一这种方式是百度到的最常见的,而且的最方便的,但是依旧会存留问题

1.数组顺序不一致,(可以使用 .srot() 做一下排序)

2.由于转义成了字符串,会导致原本是数字的数据,会变成字符串类型,可能会影响对比的准确性