当前位置: 首页 > news >正文

JavaScript随手笔记---比较两个数组差异

请添加图片描述

  • 💌 所属专栏:【JavaScript随手笔记】

  • 😀 作  者:我是夜阑的狗🐶

  • 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询!

  • 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘

文章目录

  • 前言
  • 一、方法一:数组拼接
  • 二、方法二:数组转字符串
  • 总结


前言

  大家好,又见面了,我是夜阑的狗🐶,本文是专栏【JavaScript随手笔记】专栏的第4篇文章;
  今天的需求中要到两个数组的比较,不相同则进行覆盖,相同则不操作,所以只要对比多两个数组之间的差异即可;
  专栏地址:【JavaScript随手笔记】 , 此专栏是我是夜阑的狗对JS数据处理的总结,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。
  如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。


一、方法一:数组拼接

  可以利用concat函数对两个数组进行拼接一个数组,再用filter函数过滤数组并将差异返回成一个新的数组。再对新数组判定就能知道两个数组是否有差异了;

  • 差异比较方法:
getArrDifference: function(arr1, arr2){return arr1.concat(arr2).filter(function(value, i, arr){return arr.indexOf(value) === arr.lastIndexOf(value);})
}
  • 演示示例:

  可以根据不同的需要来对filter函数进行处理,由于这里只能识别出两个数组有差异即可,就没有做过多的处理; 注意:filter()不会对空数组进行检测、不会改变原始数组。

   var list1 = ["Engineer1", "Engineer2", "Engineer3", "Engineer4", "Engineer5"];var list2 = ["Engineer1", "Engineer2", "Engineer1", "Engineer5"];var list3 = ["Engineer1", "Engineer3", "Engineer5"];var list4 = ["Engineer1", "Engineer4", "Engineer5"];console.log(that.getArrDifference(list1,list2)); console.log(that.getArrDifference(list3, list4));
  • 运行结果:

在这里插入图片描述

二、方法二:数组转字符串

  相比第一种方法,第二种比较简单点,只要用toString()函数将需要比较的数组转换成字符串,再对比即可;

  • 差异比较方法:
  getArrDifference: function(arr1, arr2){return arr1.toString() != arr2.toString();},
  • 演示示例:

  当两个字符串不相同时,则返回true进行处理即可;

    var list1 = ["Engineer1", "Engineer2", "Engineer3", "Engineer4", "Engineer5"];var list2 = ["Engineer1", "Engineer2", "Engineer1", "Engineer5"];var list3 = ["Engineer1", "Engineer3", "Engineer5"];var list4 = ["Engineer1", "Engineer4", "Engineer5"];console.log(that.getArrDifference(list1,list2)); console.log(that.getArrDifference(list3, list4));
  • 运行结果:

在这里插入图片描述


总结

  感谢观看,如果有帮助到你,请给题解点个赞和收藏,让更多的人看到。🌹 🌹 🌹

  也欢迎你,关注我。👍 👍 👍

  原创不易,还希望各位大佬支持一下,你们的点赞、收藏和留言对我真的很重要!!!💕 💕 💕 最后,本文仍有许多不足之处,欢迎各位认真读完文章的小伙伴们随时私信交流、批评指正!

更多专栏订阅:

  • 😀 【LeetCode题解(持续更新中)】
  • 🚝 【Java Web项目构建过程】
  • 💛 【数字图像处理】
  • 【JavaScript随手笔记】
  • 🤩 【大数据学习笔记(华为云)】
  • 🦄 【程序错误解决方法(建议收藏)】
  • 🚀 【软件安装教程】



订阅更多,你们将会看到更多的优质内容!!

http://www.lryc.cn/news/13684.html

相关文章:

  • 【C++修炼之路】21.红黑树封装map和set
  • 下载ojdbc14.jar的10.2.0.1.0版本的包
  • 关于欧拉角你需要知道几个点
  • git ssh配置
  • Linux进程概念(三)
  • 新手福利——x64逆向基础
  • 虚幻c++中的细节之枚举类型(enum)
  • 判断某个字符串在另一个字符串中的个数
  • 测试人员如何运用好OKR
  • CentOS7 Hive2.3.9 安装部署(mysql 8.0)
  • 【PTA Advanced】1142 Maximal Clique(C++)
  • 1. MySQL在金融互联网行业的企业级安装部署
  • 【C++修炼之路】19.AVL树
  • 项目管理工具dhtmlxGantt甘特图入门教程(十):服务器端数据集成(下)
  • LeetCode 793. 阶乘函数后 K 个零
  • maven打包顺序与jvm类加载顺序
  • ④ 链表
  • 小孩扁桃体肿大3度能自愈吗?6岁小孩扁桃体肥大怎么治效果好?
  • 【C++提高编程】C++全栈体系(二十二)
  • linux系统编程2--网络编程socket知识
  • Python-__repr__、__hash__和__eq__方法,split()、join()、yield()和append()函数
  • 【安卓开发】安卓广播机制
  • 移动WEB开发四、rem布局
  • request.getURL()和request.getURI() 以及通过request获得路径相关大全
  • java网络编程-nio学习:阻塞和非阻塞
  • JVM-JMM内存模型(happens-before、volatile)
  • 算法leetcode|37. 解数独(rust重拳出击)
  • SpringBoot整合Dubbo
  • [软件工程导论(第六版)]第9章 面向对象方法学引论(课后习题详解)
  • 光学分辨率光声显微镜中基于深度学习的运动校正算法