/**
* 数组相减的方法 - es5
* @param {Array} a
* @param {Array} b
*/
function arrSubtraction1(a, b) {
if (!a || !b || Object.prototype.toString.call(a) !== '[object Array]' || Object.prototype.toString.call(b) !== '[object Array]') {
throw new Error('arrSubtraction(): Wrong Param Type')
}
for (var i = 0, len = b.length; i < len; i++) {
for (var j = 0, jen = a.length; j < jen; j++) {
if (a[j] === b[i]) {
a.splice(j, 1);
j--
}
}
}
return a
} /**
* 数组相减的方法 - 使用es新特性
* @param {Array} a
* @param {Array} b
*/
function arrSubtraction2(a, b) {
if (Array.isArray(a) && Array.isArray(b)) {
return a.filter(i => !b.includes(i))
}
throw new Error('arrSubtraction(): Wrong Param Type')
}

JS实现数组的相减操作的更多相关文章

  1. js对数组array的常见操作小结

    1.创建数组?两种方式 var arr = new Array("1","2","4"); var arr1 = ["1" ...

  2. js两个时间相减

    平常总会遇到需要算两个日期之间是多少天,以下是使用JavaScript算时间差多少天的: // 给日期类对象添加日期差方法,返回日期与diff参数日期的时间差,单位为天 Date.prototype. ...

  3. JS中小数相加相减时出现很长的小数点的解决方式

    1.问题: 平时写的代码中会出现这种情况,parseFloat(11.3-10.1) 运行的结果依然是1.200000000000001 代码示例: var arr = [0.0111,11.002, ...

  4. js两个日期相减

    function dateHanle(d1,d2){ if(Date.parse(d1) - Date.parse(d2)==0) { console.log("d1等于d2"); ...

  5. js两个浮点数相减出现多位小数的bug

  6. js 数组相减 (一个数组去掉不符合条件的子数组)

    数组相减?我也希望将来在ES8或者更好js版本能带来数组之间相互运算的方法,但是现在不能,咱们只能靠已有的方法实现: var arr1 = [2,3,5,88,99,444,66],arr2 = [2 ...

  7. js,jQuery数组常用操作小结

    一.js中数组常用操作小结 (1) shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift() ...

  8. JS之数组的几个不 low 操作

    JS之数组的几个不 low 操作 1.扁平化n维数组 1)终极篇 [1,[2,3]].flat(2) //[1,2,3] [1,[2,3,[4,5]].flat(3) //[1,2,3,4,5] [1 ...

  9. js之数组操作

    js之数组操作 前言 本文主要从应用来讲数组api的一些操作,如一行代码扁平化n维数组.数组去重.求数组最大值.数组求和.排序.对象和数组的转化等.(文章摘自:https://segmentfault ...

随机推荐

  1. js中prototype,constructor的理解

    连看4篇前辈的文章,记录一些知识点 Javascript继承机制的设计思想 Javascript 面向对象编程(一):封装 Javascript面向对象编程(二):构造函数的继承 Javascript ...

  2. C语言实例:数组与字符串

    数组: #include <stdio.h> #include <stdlib.h> #define ARRAY_SIZE(Array) (sizeof (Array) / s ...

  3. 基于Docker搭建MySQL多源复制环境

    MySQL5.7在主从复制上面相对之前版本多了一些新特性,包括多源复制.基于组提交的并行复制.在线修改Replication Filter.GTID增强.半同步复制增强等. 多源复制:多源复制加入了一 ...

  4. 扩容 swap 分区

    扩容 swap 分区 题:添加一个 swap 分区在您的系统中添加一个大小为 512 MiB 的 swap 分区.当您的系统启动时,swap 分区应 该可以自动挂载.不要移除或者修改其他已经存在于您的 ...

  5. Nginx配置SSL证书实现https访问「浏览器未认证」

    http 和 https 介绍 http:应用最广泛的一种网络协议,是一个B/S的request和response的标准,用于从www服务器传输超文本到本地浏览器的传输协议. https:以安全为目标 ...

  6. Kali Day01 --- arpspoof命令进行断网攻击(ARP欺骗)

    root@kali:~/文档# arpspoof -i eth0 -t 172.20.151.* 172.20.151.1 34:64:a9:36:4:b7 0:0:0:0:0:0 0806 42: ...

  7. UI自动化(三)css优先级

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  8. python学习笔记:深浅拷贝的使用和原理

    在理解深浅拷贝之前,我们先熟悉下变量对象和数据类型 1.变量和对象 变量-引用-对象(可变对象,不可变对象) 在python中一切都是对象,比如[1,2],'hello world',123,{'k1 ...

  9. css的再深入8(更新中···)

    1.去滚动条的属性 overflow:hidden; overflow-x:hidden; 水平超出的隐藏. 2.z-index 层次叠加 元素重叠 谁的值大谁在上面 (1) 父级出现position ...

  10. 变量和关系符和JAVA基本类型笔记与常考面试题

    变量的类型:数值型:整型(byte,short,int,long).浮点型(float,double)非数值型:布尔类型(boolean),字符型(char),字符串类型(String),其他引用型 ...