ES中数组的常用操作项

扣了些代码,用作笔记

1、得到两个数组的交集

 * @param {Array} arr1
 * @param {Array} arr2

得到两个数组的交集, 两个数组的元素为数值或字符串

  getIntersection = (arr1, arr2) => {
      let len = Math.min(arr1.length, arr2.length)
      let i = -1
      let res = []
      while (++i < len) {
        const item = arr2[i]
        if (arr1.indexOf(item) > -1) res.push(item)
      }
      return res
    }

2、测试结果

 console.log(getIntersection([1,2,3,4,5],[2,3,4,5,6,7,8,9,10]));	

在这里插入图片描述
3、得到两个数组的并集

 * @param {Array} arr1
 * @param {Array} arr2

得到两个数组的并集, 两个数组的元素为数值或字符串【使用set集合特性】

getUnion = (arr1, arr2) => {
  return Array.from(new Set([...arr1, ...arr2]))
}

4、测试结果

 console.log(getUnion([1,2,3,4,5],[2,3,4,5,6,7,8,9,10]));

在这里插入图片描述
5、是否包含相同元素

 * @param {Array} target 目标数组
 * @param {Array} arr 需要查询的数组

some方法-返回true或false

const hasOneOf = (targetarr, arr) => {
  return targetarr.some(_ => arr.indexOf(_) > -1)
}

6、测试

  console.log(hasOneOf([1,2,3,4,5],[2,3,4,5,6,7,8,9,10]));
    console.log(hasOneOf([1,2,3,4,5],[6,7,8,9,10]));

在这里插入图片描述
7、自定义循环数组

 * @param {Array} arr1
 * @param function 回调

首先进行判空

const forEach = (arr, fn) => {
      if (!arr.length || !fn) return
      let i = -1
      let len = arr.length
      while (++i < len) {
        let item = arr[i]
        //回调参数,数组项,下标,原数组
        fn(item, i, arr)
      }
    };

8、测试

forEach([1,2,3,4,5,6],function (a,c,e) {
  console.log(a);
  console.log(c);
  console.log(e);
});

测试结果如图:
在这里插入图片描述
9、实现方法有多种后续更新~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值