javascript,数组去重的解决方案
分类专栏: Javascript&
简介 网上有很多方案,搜集了比较好用的。
<p><span class="ql-size-large" style="color:rgb(230, 0, 0);">ES6中使用Set结构: 此方案可适用与有对象的去重</span></p><pre class="ql-syntax" spellcheck="false">let a = new Set([1, 2, 3]);
let b = new Set([3, 5, 2]);
// 并集 let unionSet = new Set([...a, ...b]);
//[1,2,3,5]
// 交集 let intersectionSet = new Set([...a].filter(x => b.has(x)));
// [2,3]
// ab差集 let differenceABSet = new Set([...a].filter(x => !b.has(x)));
// [1]
</pre><p><br></p><p>// ES6 的 Set 来处理,这是真正按照数学上的集合来进行的,不会有重复元素</p><pre class="ql-syntax" spellcheck="false">var subSet = function(arr1, arr2) {
var set1 = new Set(arr1);
var set2 = new Set(arr2);
var subset = [];
for (let item of set1) {
if (!set2.has(item)) {
subset.push(item);
}
}
return subset;
};
</pre><p><span class="ql-size-large" style="color:rgb(230, 0, 0);">includes判断去重, 只适用非对象的比较</span></p><pre class="ql-syntax" spellcheck="false">var arr1 = [a, b, c,];
var arr2 = [a, b, c, d];
let list = arr2.filter(items => {
if (!arr1.includes(items)) return items;
})
</pre><p><br></p><p>关于循环遍历的去重方案,就不推荐了,毕竟代码量大,可读性不好。除非有特殊业务需求。</p>
分享到:
转载:
喜欢 2
收藏
暂无评论信息
- 相关文章
- 文章推荐
-
Node 配置sequelize + mysql,根据模型自动创建数据库表
研究了一下午的node + sequelize + mysql。
-
git:如何管理本机的多个ssh密钥(多个远程仓库账号)
如果我们电脑上已经存在了一个ssh key,那么我们需要在我们电脑上生成第二个你想在本电脑上使用的id_rsa,使用命令:ssh-keygen -t rsa -C "你的github账号"。
-
娱美德旗下MMORPG手游《传奇4》将推出新PVP玩法"比奇掠夺"&
《传奇4》推出新门派PVP玩法!韩国首尔2022年6月29日 /美通社/ -- 《传奇4》(MIR4)的新PVP玩法比奇掠夺(Bicheon Heist)于2022年6月28日推出。
-
乐视官方确认还有 400 多人:消息称员工“没有内卷和 996”,过着“没有老板”的神仙日子
7 月 11 日消息,近期,微博博主 @Fenng 分享了一个冷知识:乐视居然还剩下 400 多人,有不少是五年以上的老员工。这些老员工称“幸福感是很多老乐视人留下来的理由”,没有内卷和 996,没拖欠过留下来的员工的工资,也没停过社保。
- 点击排行
- 站长推荐
- 猜你喜欢
- 网站信息
- 站内问答:12篇
- 站内文章:213篇
- 建站时间:已运行1267天
- 备案号: 浙ICP备2022018799号
- 语言:
- English(USA)
- French(FR)
- Chinese(ZH)
无数据