Comments (2)
1 实现一个去重算法, a,b 2个 concat 后 形成新数组,去重就为并集合
2 1 的去重被抛弃的数装进一个新的数组,再次去重就是交集
3 分别用a,b 除去 交集,就是他们各自的差集
4 a,b 相对1 的去重后新数组 的差就是补集
from daily.
实现数组的并、交、差、补集四个方法
释意
并集: 若A、B是集合,那么并集就是所有A的元素和所有B的元素
交集: 若A、B是集合,那么所有集合A中,集合B中所共有的元素组成的集合,叫做交集
补集:设S是一个集合,A是S的一个子集,由S中所有不属于A元素组成的集合,叫做子集A在集合S中的绝对补集。补集分为绝对补集和相对补集。
差集: 有两个集合,集合A、集合B,差集就是集合A-集合B
差集和补集的区别:补集要求子集A必须是S的一个子集,差集是两个集合之间的差。
代码实现
// 交集:
let InterSection = function (arr1, arr2) {
return arr1.filter((v) => arr2.indexOf(v) > -1);
}
// 并集:
let Union = function (arr1, arr2) {
return arr1.concat(arr2.filter((v) => !(arr1.indexOf(v) > -1)));
}
// 补集:
let Complement = function (arr1, arr2) {
let all
return arr1.filter((v) => !(arr2.indexOf(v) > -1));
}
// 差集:
let DifferenceSet = function (arr1, arr2) {
return arr1.filter((v) => arr2.indexOf(v) == -1);
}
// console.log(InterSection([1,2,3,4,5], [3,4,6,7]));
// console.log(Union([1,2,3,4,5], [3,4,6,7]));
// console.log(Complement([1,2,3,4,5], [3,4,6,7]));
// console.log(DifferenceSet([1,2,3,4,5], [3,4,6,7]));
from daily.
Related Issues (20)
- 第二十三题:新窗口打开链接的方法是什么?那么如何使全站链接都打开新窗口? HOT 1
- 第二十四题:介绍一下HTML5中的ruby标签 HOT 2
- 第二十五题:new操作符都做了什么事情? HOT 2
- 第二十六题:你所在的团队有规范吗?举例说明都定义了哪些规范? HOT 1
- 第二十七题:用洗牌算法实现一个打乱数组的方法 HOT 3
- 第二十九题:什么是链表? HOT 1
- 第三十题:两数相加
- 第三十一题:描述一下原型和原型链,以及之间的关系
- 第三十二题:什么是高阶函数? HOT 1
- 第三十三题:柯里化?
- 第三十四题:如何快速的适应新工作?
- 第三十五题:为什么不常用table和iframe这两个元素?
- 第三十六题:聊聊单元测试?
- 第三十七题:void 0 HOT 1
- 第三十八题:BEM 规范 HOT 1
- 第三十九题:Webpack的优缺点 HOT 1
- 第四十题:实现一个Promise HOT 1
- 第四十一题:TypeScript的优劣点 HOT 1
- 第四十二题:React 获取 ref 的方法都有哪些? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from daily.