请问有什么好的办法可以判断两个数组的值是否相等吗比如:a=['a','b','c','d'];b=['b','c','d','a'];顺序不同但是只要值是相同的话就返回true就可以了谢谢大家
2 回答

繁花不似锦
TA贡献1851条经验 获得超4个赞
functionf(a,b){m=newMap()a.forEach(o=>m.set(o,(m.get(o)||0)+1));b.forEach(o=>m.set(o,(m.get(o)||0)-1));for(varvalueofm.values()){if(value!==0){returnfalse}}returntrue}

皈依舞
TA贡献1851条经验 获得超3个赞
isContained=(a,b)=>{if(!(ainstanceofArray)||!(binstanceofArray))returnfalse;if(a.length!=b.length)returnfalse;for(vari=0,len=b.length;iif(a.indexOf(b[i])==-1&&b.indexOf(a[i])==-1){ returnfalse;}}returntrue;}arr1=[1,2,3,4,'obj'];arr2=[4,3,2,1,'obj'];alert(isContained(arr1,arr2));如果不习惯箭头函数:functionisContained(a,b){if(!(ainstanceofArray)||!(binstanceofArray))returnfalse;if(a.length!=b.length)returnfalse;for(vari=0,len=b.length;iif(a.indexOf(b[i])==-1&&b.indexOf(a[i])==-1){ returnfalse;}}returntrue;}arr1=[1,2,3,4,'obj'];arr2=[4,3,2,1,'obj'];alert(isContained(arr1,arr2));
添加回答
举报
0/150
提交
取消