猿问

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

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

弑天下
浏览 1633回答 2
2回答

萧十郎

function f(a, b) {     m = new Map()     a.forEach(o => m.set(o, (m.get(o)||0) + 1));     b.forEach(o => m.set(o, (m.get(o)||0) - 1));    for (var value of m.values()) {        if(value !== 0){ return false}     }    return true}

翻翻过去那场雪

isContained&nbsp;=(a,&nbsp;b)=>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!(a&nbsp;instanceof&nbsp;Array)&nbsp;||&nbsp;!(b&nbsp;instanceof&nbsp;Array))&nbsp;return&nbsp;false;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(a.length&nbsp;!=&nbsp;b.length)&nbsp;return&nbsp;false;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(var&nbsp;i&nbsp;=&nbsp;0,&nbsp;len&nbsp;=&nbsp;b.length;&nbsp;i&nbsp;<&nbsp;len;&nbsp;i++){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(a.indexOf(b[i])&nbsp;==&nbsp;-1&nbsp;&&&nbsp;b.indexOf(a[i])&nbsp;==&nbsp;-1)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;arr1&nbsp;=&nbsp;[1,2,3,4,'obj']; &nbsp;&nbsp;&nbsp;&nbsp;arr2&nbsp;=&nbsp;[4,3,2,1,'obj']; &nbsp;&nbsp;&nbsp;&nbsp;alert(isContained(arr1,arr2));如果不习惯箭头函数:function&nbsp;isContained&nbsp;(a,&nbsp;b){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!(a&nbsp;instanceof&nbsp;Array)&nbsp;||&nbsp;!(b&nbsp;instanceof&nbsp;Array))&nbsp;return&nbsp;false;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(a.length&nbsp;!=&nbsp;b.length)&nbsp;return&nbsp;false;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(var&nbsp;i&nbsp;=&nbsp;0,&nbsp;len&nbsp;=&nbsp;b.length;&nbsp;i&nbsp;<&nbsp;len;&nbsp;i++){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(a.indexOf(b[i])&nbsp;==&nbsp;-1&nbsp;&&&nbsp;b.indexOf(a[i])&nbsp;==&nbsp;-1)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;arr1&nbsp;=&nbsp;[1,2,3,4,'obj']; &nbsp;&nbsp;&nbsp;&nbsp;arr2&nbsp;=&nbsp;[4,3,2,1,'obj']; &nbsp;&nbsp;&nbsp;&nbsp;alert(isContained(arr1,arr2));
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答