详解JS取出两个数组中的不同或相同元素


Posted in Javascript onMarch 20, 2019

1、取出两个数组的不同元素

var arr1 = [0,1,2,3,4,5];
var arr2 = [0,4,6,1,3,9];
function getArrDifference(arr1, arr2) {
    return arr1.concat(arr2).filter(function(v, i, arr) {
      return arr.indexOf(v) === arr.lastIndexOf(v);
    });
  }
  console.log(getArrDifference(arr1,arr2));
 
 //输出:(4) [2, 5, 6, 9]

(1)concat() 方法:用于连接两个或多个数组。

 该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本,例:

<script type="text/javascript">

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"

document.write(arr.concat(arr2));

//输出:George、John、Thomas、James、Adrew、Martin
</script>

(2)Array filter() 方法:

  1. 创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
  2. 注意: filter() 不会对空数组进行检测。
  3. 注意: filter() 不会改变原始数组。
  4. 语法:array.filter(function(currentValue,index,arr), thisValue)

(3)indexOf() 方法:

  1. 可返回某个指定的字符串值在字符串中首次出现的位置。
  2. 如果没有找到匹配的字符串则返回 -1。
  3. 注意: indexOf() 方法区分大小写。

(4)lastIndexOf() 方法:

  1. 可返回一个指定的字符串值最后出现的位置,如果指定第二个参数 start,则在一个字符串中的指定位置从后向前搜索。
  2. 注意: 该方法将从后向前检索字符串,但返回是从起始位置 (0) 开始计算子字符串最后出现的位置。 看它是否含有字符串。
  3. 开始检索的位置在字符串的 start 处或字符串的结尾(没有指定 start 时)。
  4. 如果没有找到匹配字符串则返回 -1 。
  5. 注意:lastIndexOf() 方法是区分大小写的!

 2、取出两个数组的相同元素

var arr1 = [0,1,2,3,4,5];
var arr2 = [0,4,6,1,3,9];
function getArrEqual(arr1, arr2) {
    let newArr = [];
    for (let i = 0; i < arr2.length; i++) {
      for (let j = 0; j < arr1.length; j++) {
        if(arr1[j] === arr2[i]){
          newArr.push(arr1[j]);
        }
    }
   }
   return newArr;
}
console.log(getArrEqual(arr1, arr2));
 //输出:(4) [0, 4, 1, 3]

以上所述是小编给大家介绍的JS取出两个数组中的不同或相同元素详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Hutia 的 JS 代码集
Oct 24 Javascript
实现局部遮罩与关闭原理及代码
Feb 04 Javascript
jquery对ajax的支持介绍
Dec 10 Javascript
Javascript限制网页只能在微信内置浏览器中访问
Nov 09 Javascript
js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解
Nov 09 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
Dec 13 Javascript
详解javascript实现瀑布流列式布局
Jan 29 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
Dec 14 Javascript
ajax请求+vue.js渲染+页面加载的示例
Feb 11 Javascript
微信小程序画布圆形进度条显示效果
Nov 17 Javascript
详解npm 配置项registry修改为淘宝镜像
Sep 07 Javascript
关于单文件组件.vue的使用
Sep 20 Javascript
详解vue中axios的使用与封装
Mar 20 #Javascript
javascript数组去重方法总结(推荐)
Mar 20 #Javascript
浅谈JavaScript面向对象--继承
Mar 20 #Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
Mar 20 #Javascript
vue踩坑记录之数组定义和赋值问题
Mar 20 #Javascript
vue实现微信二次分享以及自定义分享的示例
Mar 20 #Javascript
vscode配置vue下的es6规范自动格式化详解
Mar 20 #Javascript
You might like
关于PHP5 Session生命周期介绍
2010/03/02 PHP
PHP url 加密解密函数代码
2011/08/26 PHP
PHP的array_diff()函数在处理大数组时的效率问题
2011/11/27 PHP
PHP中设置时区,记录日志文件的实现代码
2013/01/07 PHP
老版本PHP转义Json里的特殊字符的函数
2015/06/08 PHP
PHP微信H5支付开发实例
2018/07/25 PHP
PHP addAttribute()函数讲解
2019/02/03 PHP
top.location.href 没有权限 解决方法
2008/08/05 Javascript
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
关于jQuery库冲突的完美解决办法
2017/05/20 jQuery
ECMAscript 变量作用域总结概括
2017/08/18 Javascript
微信小程序实现选项卡功能
2020/06/19 Javascript
vue购物车插件编写代码
2017/11/27 Javascript
vue.js input框之间赋值方法
2018/08/24 Javascript
js根据后缀判断文件文件类型的代码
2020/05/09 Javascript
python实现的二叉树算法和kmp算法实例
2014/04/25 Python
Python中的函数式编程:不可变的数据结构
2018/10/08 Python
解决pycharm工程启动卡住没反应的问题
2019/01/19 Python
Python面向对象封装操作案例详解 II
2020/01/02 Python
详解CSS3中border-image的使用
2015/07/18 HTML / CSS
HTML5的语法变化介绍
2013/08/13 HTML / CSS
选购国际女性时装设计师品牌:IFCHIC(支持中文)
2018/04/12 全球购物
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
英语专业毕业生自荐信
2013/10/28 职场文书
教师开学感言
2014/02/14 职场文书
《自选商场》教学反思
2014/02/14 职场文书
理工类毕业自我鉴定
2014/02/20 职场文书
共产党员批评与自我批评
2014/10/15 职场文书
升学宴学生答谢词
2015/01/05 职场文书
2015年音乐教研组工作总结
2015/07/22 职场文书
合作合同协议书
2016/03/21 职场文书
Go标准容器之Ring的使用说明
2021/05/05 Golang
HTML+CSS 实现顶部导航栏菜单制作
2021/06/03 HTML / CSS
opencv-python图像配准(匹配和叠加)的实现
2021/06/23 Python
SQL注入详解及防范方法
2021/12/06 MySQL