JavaScript】js 怎样对比两个数组?并且将不一样的数据提取出来

2021-11-24 14:33发布

9条回答

1637744163(1).png如图所示

一个Ai
3楼 · 2021-11-25 14:54

举个例子

上来打杂的
4楼 · 2021-11-25 15:19

1、


   const tempList = [1,2,3,4,5,6,7]


   const arr = [1,2,3]


   const obj = {}


   arr.forEach(item => obj[`${item}`] = true)  // 将需要对比的数组的值作为 obj的key


   tempList.forEach(item => if(!obj[item])  { console.log(item) } ) // 这里是对比出来不同的元素


 


2、


   const tempList = [1,2,3,4,5,6,7]

   const arr = [1,2,3]


   function compare ( num, list) {undefined

       for (var j = 0; j < list>

         if (num === list[j]) {undefined

           return false; //如果传过来的元素在arr1中能找到相匹配的元素,返回fasle

         }

       }

       return true;

   }



    for (let index = 0; index < tempList>

      if(compare(tempList[index], arr )){ console.log(tempList[index]);}

    }



1

aijingda
6楼 · 2021-11-26 14:53

代码:

data() {
    return {
      navList: [
        {
          name: "报告简介",
          id: "baogaojianjie_",
        },
        {
          name: "数据统计",
          id: "shujutongji_",
        },
        {
          name: "数据来源对比",
          id: "shujulaiydb_",
        },
        {
          name: "数据趋势分析",
          id: "shujuqushifx_",
        },
        {
          name: "情感分析",
          id: "qingganfenxi_",
        }
      ],
      newArr:[
         {
          name: "数据来源对比",
        },
        {
          name: "数据趋势分析",
        },
        {
          name: "情感分析",
        }
      ],
      delectData :[]
    };
  },
mounted(){
  this.delectData = this.navList.filter((item) => {
    let idList = this.newArr.map((v) => v.name);
    return idList.indexOf(item.name)===-1;
  });
  console.log(this.delectData);
//[{name: "报告简介",id: "baogaojianjie_"},{name: "数据统计",id: "shujutongji_"},]
}


希希
7楼 · 2021-11-27 12:07

1、


   const tempList = [1,2,3,4,5,6,7]


   const arr = [1,2,3]


   const obj = {}


   arr.forEach(item => obj[`${item}`] = true)  // 将需要对比的数组的值作为 obj的key


   tempList.forEach(item => if(!obj[item])  { console.log(item) } ) // 这里是对比出来不同的元素


 


2、


   const tempList = [1,2,3,4,5,6,7]

   const arr = [1,2,3]


   function compare ( num, list) {undefined

       for (var j = 0; j < list>

         if (num === list[j]) {undefined

           return false; //如果传过来的元素在arr1中能找到相匹配的元素,返回fasle

         }

       }

       return true;

   }



    for (let index = 0; index < tempList>

      if(compare(tempList[index], arr )){ console.log(tempList[index]);}

    }



 0人赞  添加讨论(0)

 

苏楠 - 世界的没好好与你环环相扣

5楼 · 1天前

1

 0人赞  添加讨论(0)


猫的想法不敢猜
8楼 · 2021-11-28 18:04
var array1 = [ { "Num"  "A "   },{ "Num"  "B"  }];
var array2 = [ { "Num"  "A " , "Name"  "t1 "  }, { "Num"  "B" , "Name"  "t2" }, { "Num"  "C "  ,"Name"  "t3 " }];
var result = [];
for (var i =  0 ; i < array2.length; i++){
     var obj = array2[i];
     var num = obj.Num;
     var isExist =  false ;
     for (var j =  0 ; j < array1.length; j++){
         var aj = array1[j];
         var n = aj.Num;
         if (n == num){
             isExist =  true ;
             break ;
         }
     }
     if (!isExist){
         result.push(obj);
     }
}
console.log(result);

来源于网络,仅供参考

visonx
9楼 · 2021-11-29 19:07

const tempList = [1,2,3,4,5,6,7]


   const arr = [1,2,3]


   const obj = {}


   arr.forEach(item => obj[`${item}`] = true)  // 将需要对比的数组的值作为 obj的key


   tempList.forEach(item => if(!obj[item])  { console.log(item) } ) // 这里是对比出来不同的元素


回答: 2021-12-01 09:51

const tempList = [1,2,3,4,5,6,7]


   const arr = [1,2,3]


   const obj = {}


   arr.forEach(item => obj[`${item}`] = true)  // 将需要对比的数组的值作为 obj的key


   tempList.forEach(item => if(!obj[item])  { console.log(item) } ) // 这里是对比出来不同的元素



相关问题推荐

  • 回答 8

    向一个对象数组里面添加新的属性var arry= [{a:11,b:22,c:33,d:44},{a:11,b:0,c:0,d:44},{a:11,b:22,c:99,d:99}];var arry2=[];arry.map(((item, index)=> {arry2.push(Object.assign({},item,{mess1:item.c,mess2:item.d}))}))cons...

  • 回答 2

    我觉得getTopWindow() 应该是他自己写的函数 mask  应该是getTopWindow()函数中 return 出的一个什么玩意show()  jQuery的显示

  • 回答 12

    1、原型对象也是普通的对象,是对象一个自带隐式的 __proto__ 属性,原型也有可能有自己的原型,如果一个原型对象的原型不为 null 的话,我们就称之为原型链 2、 原型链是由一些用来继承和共享属性的对象组成的(有限的)对象链...

  • 回答 6

    使用VS code对JS进行Debug,需要安装一个插件,这个插件是根据你所使用的浏览器来的,不同浏览器对应插件不同,以下是插件对应情况,下载完相应的插件以后还要下载一个live server在浏览器下查看你界面运行效果,记得在到设置里修改下live server的端口号,然...

  • 回答 8
    已采纳

    没有基础,是可以学Java的,在网上也能找到很多免费的视频、学习资料等资源,只不过想要光靠自己摸索学透Java并不容易,最好是找一个比较靠谱的有实训的培训机构。不过,我给你点建议:1.脑子里要有编程思维,2.学习态度要有,3.了解了基本概念后,从图形界面...

  • 回答 7

    假设文本框的id=text1js:document.getElementById(text1).value = 测试;//即可

  • 回答 2

    这两个事件都是在js原生开发时经常会用到的,比如需要对页面dom进行动态处理,这时就需要用到DOMContentLoaded和[removed]事件,大家都知道,就是在dom构建完毕后,才可以对dom元素进行操作,否则会获取不到相应的dom元素,但是DOMContentLoaded和[removed]还...

  • 回答 11

    基本概念CookieCookie 是小甜饼的意思。顾名思义,cookie 确实非常小,它的大小限制为4KB左右。它的主要用途有保存登录信息,比如你登录某个网站市场可以看到记住密码,这通常就是通过在 Cookie 中存入一段辨别用户身份的数据来实现的。localStoragelocalStor...

  • 回答 2

    在vscode 头疼的问题是 用浏览器查看网页!会是以文件夹的方式打开的!  我遇到这个问题 我还重新配置了Apache    ! 但是现在可以解决:使用vscode  ==================== 打开cmd   : 在cmd 控制台中输入  :   1.运行cnpm install live-server...

  • 回答 1

    在进行对象之间的合并的时候,就会使用到extend方法进行合并语法结构:$.extend(true,{},对象1,对象2...)但是这里需要考虑一个问题,如果对象间有相同的属性名,就会涉及到哪一个对象和哪一个对象的值覆盖合并的问题,如果对象中的属性值还是一个对象的话,那...

  • 回答 5
    已采纳

    先说下要实现什么功能,比如:限制图片大小不能超过30K,宽高为121x75上面需求提了,然后我直接把代码给你放出来,可以照着下面代码敲一遍试试就知道怎么限制图片宽高了 $(#picFile4).on(change,function(){ var imgFile = this.files[0]; va...

  • 回答 3

    用python爬取近30天百度指数代码均转载,如下:#1.登录url = ‘http://index.baidu.com/’driver = webdriver.Chrome(executable_path=‘C:/Program Files(x86)/Google/Chrome/Application/chromedriver.exe’)driver.get(url)cookieList = [......

  • 回答 7

    基本类型基本类型分为以下六种:string(字符串)boolean(布尔值)number(数字)symbol(符号)null(空值)undefined(未定义)注意:string 、number 、boolean 和 null  undefined 这五种类型统称为原始类型(Primitive),表示不能再细分下去的基本类...

  • 回答 11

    实体类中添加时间转换注解(注意时区问题)12345/**  * 开始时间  */ @JsonFormat(pattern = yyyy-MM-dd HH:mm:ss, timezone=GMT+8) private Date startTime;

  • 回答 5

    实例中包含加、减、乘、除四种运算,由于先乘和除的优先级别高,所以乘和除将首先被运算,接下来是加和减运算。乘和除优先级相同,所以左边的乘法将被先执行,然后是除法,接下来按从左到右的顺序进行加减运算...

没有解决我的问题,去提问