JS 实现数组的相减操作
数组相减的方法
/**
* 数组相减的方法
* @param {Array} a
* @param {Array} b
*/
function arrSubtraction(a, b) {
if (
!a ||
!b ||
Object.prototype.toString.call(a) !== "[object Array]" ||
Object.prototype.toString.call(b) !== "[object Array]"
) {
throw new new TypeError("arguments must be array")();
}
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 arrSubtraction(a, b) {
if (Array.isArray(a) && Array.isArray(b)) {
return a.filter((i) => !b.includes(i));
}
throw new new TypeError("arguments must be array")();
}
测试
var a = [1, 2, 3, 4, 5, 6];
var b = [1, 3, 5];
arrSubtraction(a, b); // [2, 4, 6]