2个数组,我想找出a中有,而b没有的,b有而a没有的,怎样才能达到最高效率

jadewoo 2011-05-11 11:39:31
var a = [1,3,5,6];
var b = [5,2,3,4];
2个数组,我想找出a中有,而b没有的,b有而a没有的,怎样才能达到最高效率?
...全文
128 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
我是来接分的 2011-05-11
  • 打赏
  • 举报
回复
两个数组相加 取出只出现一次的数 就是a中有,而b没有的或b有而a没有的 然后判断取出的数是属于a 还是属于b
2011-05-11
  • 打赏
  • 举报
回复
另一种实现

<script type="text/javascript">
var a = [1,3,5,3,6,'A','C','D'];
var b = [5,2,3,4,7,'B','C'];
var len = Math.max(a.length, b.length);
var onlyA = {}, onlyB = {}, arrA = [], arrB = [];
for(var i = 0; i < len; i++){
a[i] && (onlyA[a[i]] = a[i]);
b[i] && (onlyB[b[i]] = b[i]);
}
for(var i = 0; i < len; i++){
b[i] && (delete onlyA[b[i]]);
a[i] && (delete onlyB[a[i]]);
}
for(var p in onlyA){
arrA.push(onlyA[p]);
}
for(var p in onlyB){
arrB.push(onlyB[p]);
}
alert(arrA + "\n" + arrB);
</script>
jadewoo 2011-05-11
  • 打赏
  • 举报
回复
我现在的做法是:
var a = [1,3,5,6];
var b = [5,2,3,4];
for(var i=0;i<a.length;i++) {
for(var j=0;j<b.length;j++) {
if (a[i] == b[j]) {
a.splice(i,1);
b.splice(j,1);
i--;
break;
}
}
}
jadewoo 2011-05-11
  • 打赏
  • 举报
回复
两个数组相加 取出只出现一次的数,这样只是取出了不重复的数吧,不能取出a中有而b没有的,和b有而a没有的

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧