普通网友 2012-10-22 09:55
浏览 989
已采纳

如何比较两个数组然后把不同的元素放到另一个数组里?

我有两个数组:

假如数组arr1中元素为1,2,3,4

数组arr2中元素为1,3,4

如何能通过JS把arr1和arr2中不同的元素2,给放到arr3这个数组里?有时候可能arr2中元素比arr1中元素多。

  • 写回答

6条回答 默认 最新

  • m_m1m2m3m4m5 2012-10-22 18:30
    关注

    建hash,key为元素 value 为命中 初始为1
    A所有元素放入hash 中并增加此key 命中*2
    B所有元素放入hash 中并增加此key 命中*5
    最后 如果尾数为0 则去掉.

    [code="java"] function a (){
    var arr1=[1,3,4];
    var arr2=[1,2,4];
    var arr3=[];
    var hash3 = {} ;
    for(var index in arr1){
    var i = arr1[index];
    var temp = hash3[""+i];
    if(!temp){
    hash3[""+i]=2;
    }else{
    hash3[""+i] = temp*2;
    }
    }
    for(var index in arr2){
    var i = arr2[index];
    var temp = hash3[""+i];
    if(!temp){
    hash3[""+i]=5;
    }else{
    hash3[""+i] = temp*5;
    }
    }
    for(var i in hash3 ){
    var temp = hash3[""+i];
    if(temp%10!=0){
    arr3.push(i)
    }
    }
    return arr3;

    }
    alert(a());[/code]
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决