Js 如何判断两个字符串数组完全一样,但顺序可以不同?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Js 如何判断两个字符串数组完全一样,但顺序可以不同?相关的知识,希望对你有一定的参考价值。

可以重复,但数组长度要一致

例如:
['abc','cde','abc','lmn','xyz']

['cde','xyz','abc','abc','lmn']
是一样的。

参考技术A 请保存为.html文件测试
<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 如何判断两个字符串数组完全一样,但顺序可以不同?的主要内容,如果未能解决你的问题,请参考以下文章

判断两个数组的相似性

java中如何比较两个数组确定是不是相等?

两个一维数组如何判断是相等的?

js两个字符串明明一样却判断显示不相等

js:给定两个数组,如何判断他们的相对应下标的元素类型是一样的

JS 比较两个数组是不是相等 是不是拥有相同元素