为了账号安全,请及时绑定邮箱和手机立即绑定

js判断两个数组的值是否相等 值的顺序可能不同

js判断两个数组的值是否相等 值的顺序可能不同

慕妹3242003 2019-04-27 22:20:06
请问有什么好的办法可以判断两个数组的值是否相等吗比如: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
}
                            
查看完整回答
反对 回复 2019-04-27
?
皈依舞

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));
                            
查看完整回答
反对 回复 2019-04-27
  • 2 回答
  • 0 关注
  • 1976 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号