Js 如何判断两个字符串数组完全一样,但顺序可以不同?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Js 如何判断两个字符串数组完全一样,但顺序可以不同?相关的知识,希望对你有一定的参考价值。
可以重复,但数组长度要一致
例如:
['abc','cde','abc','lmn','xyz']
与
['cde','xyz','abc','abc','lmn']
是一样的。
<html>
<body>
<script type="text/javascript">
var arr1 =['abc','cde','abc','lmn','xyz']
var arr2 =['cde','xyz','abc','abc','lmn']
for(let str1 of arr1)
flag=0
for(let str2 of arr2)
if(str1==str2)
flag=1
arr2.splice(arr2.indexOf(str2),1)
break
if(flag==0)
alert("数组不相同!")
break
if(flag==1)
alert("数组相同!")
</script>
</body>
</html>追问
这里好像有一个问题:
无法判断['abc','cde','abc','lmn','xyz']与
['cde','xyz','xyz','abc','lmn']
是不同的
JS 比较两个数组是不是相等 是不是拥有相同元素
要判断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> 参考技术A
这里封装了一个函数库 jutils
/**
* 判断两个数组是否相等
*
* @since 0.1.0
* @category Array
* @param Array 要比较的数组
* @param other 另一个要比较的数组
* @returns boolean
* @example
*
* arrayEqual([0, 1],[1, 2])
* // => false
*/
以上是关于Js 如何判断两个字符串数组完全一样,但顺序可以不同?的主要内容,如果未能解决你的问题,请参考以下文章