数组或数组对象比较
every() 方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔
数组对象:
取交集
let a=[{id:1,a:123,b:1234},{id:2,a:123,b:1234}];let b=[{id:1,a:123,b:1234},{id:2,a:123,b:1234},{id:3,a:123,b:1234},{id:4,a:123,b:1234}];let arr = [...b].filter(x => [...a].some(y => y.id === x.id));console.log('arr',arr)
取差集:
let a=[{id:1,a:123,b:1234},{id:2,a:123,b:1234}];let b=[{id:1,a:123,b:1234},{id:2,a:123,b:1234},{id:3,a:123,b:1234},{id:4,a:123,b:1234}];let arr = [...b].filter(x => [...a].every(y => y.id !== x.id));console.log('arr',arr);
取并集:
let a=new Set([1,2,3,4,5]);let b=new Set([1,2,3,4,5,6,7,8,9]);let arr = Array.from(new Set([...a, ...b]));console.log('arr',arr);
数组包含关系:
var a = [1, 2, 5, 7, 3];var b = [1, 7, 3];function isContained(aa, bb) {if(!(aa instanceof Array) || !(bb instanceof Array) || ((aa.length < bb.length))) {return false;}for (var i = 0; i < bb.length; i++) {var flag = false;for(var j = 0; j < aa.length; j++){if(a[j] == bb[i]){flag = true;break;}}if(flag == false){return flag;}}return true;}var c = isContained(a, b);console.log(c);
