电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

JavaScript常用8種數組去重代碼實例

瀏覽:84日期:2023-10-14 16:00:59

在我們學習和使用JavaScript的中,會經常使用到數組的去重,接下來的內容,來給大家分享一下,我們在開發過程中,常用到的數組去重方法,這些方法都是有在實戰中真實實踐過的,非常值得大家學習和收藏,我們一起來看看都有哪些方法吧!

1.利用對象的屬性

使用對象屬性不重名的特性。

var arr = [’qiang’,’ming’,’tao’,’li’,’liang’,’you’,’qiang’,’tao’];console.time('nonredundant1');var nonredundant1 = Object.getOwnPropertyNames(arr.reduce(function(seed, item, index) { seed[item] = index; return seed;},{}));console.timeEnd('nonredundant1');console.log(nonredundant1);

結果如下:

JavaScript常用8種數組去重代碼實例

2. 使用Set數據結構

set是一種類似數組的結構,但是set成員中沒有重復的值。set()函數可以接受一個數組或者類數組的參數,生成一個set對象。而Array.from方法用于將兩類對象轉為真正的數組:類似數組的對象(array-like object和可遍歷iterable)的對象包括 ES6 新增的數據結構 Set 和 Map)。

var arr = [’qiang’,’ming’,’tao’,’li’,’liang’,’you’,’qiang’,’tao’];function unique (arr) { return Array.from(new Set(arr))}console.time('nonredundant2');var nonredundant2 = unique(arr);console.timeEnd('nonredundant2');console.log(nonredundant2);

結果如下:

JavaScript常用8種數組去重代碼實例

3. 使用for循環和splice

function unique(arr) { for (var i = 0; i < arr.length; i++) { for (var j = i + 1; j < arr.length; j++) { if (arr[i] == arr[j]) { //第一個等同于第二個,splice方法刪除第二個arr.splice(j, 1);j--; } } } return arr;}console.time('nonredundant3');var arr = [’qiang’, ’ming’, ’tao’, ’li’, ’liang’, ’you’, ’qiang’, ’tao’];var nonredundant3 = unique(arr);console.timeEnd('nonredundant3');console.log(nonredundant3);

結果如下:

JavaScript常用8種數組去重代碼實例

4.使用indexOf判斷去重

function unique(arr) { var array = []; for (var i = 0; i < arr.length; i++) { if (array .indexOf(arr[i]) === -1) { array .push(arr[i]) } } return array;}var arr = [’qiang’, ’ming’, ’tao’, ’li’, ’liang’, ’you’, ’qiang’, ’tao’];console.time('nonredundant4');var nonredundant4 = unique(arr);console.timeEnd('nonredundant4');console.log(nonredundant4);

結果如下:

JavaScript常用8種數組去重代碼實例

5.使用sort排序去重

function unique(arr) { arr = arr.sort() var arrry = [arr[0]]; for (var i = 1; i < arr.length; i++) { if (arr[i] !== arr[i - 1]) { arrry.push(arr[i]); } } return arrry;}var arr = [’qiang’, ’ming’, ’tao’, ’li’, ’liang’, ’you’, ’qiang’, ’tao’];console.time('nonredundant5');var nonredundant5 = unique(arr);console.timeEnd('nonredundant5');

結果如下:

JavaScript常用8種數組去重代碼實例

6.使用filter

function unique(arr) { var obj = {}; return arr.filter(function(item, index, arr){ return obj.hasOwnProperty(typeof item + item) ? false : (obj[typeof item + item] = true) })}var arr = [’qiang’, ’ming’, ’tao’, ’li’, ’liang’, ’you’, ’qiang’, ’tao’];console.time('nonredundant6');var nonredundant6 = unique(arr);console.timeEnd('nonredundant6');console.log(nonredundant6);

結果如下:

JavaScript常用8種數組去重代碼實例

7.使用Map數據結構去重

function unique(arr) { let map = new Map(); let array = new Array(); // 數組用于返回結果 for (let i = 0; i < arr.length; i++) { if (map.has(arr[i])) { // 如果有該key值 map.set(arr[i], true); } else { map.set(arr[i], false); // 如果沒有該key值 array.push(arr[i]); } } return array;}var arr = [’qiang’, ’ming’, ’tao’, ’li’, ’liang’, ’you’, ’qiang’, ’tao’];console.time('nonredundant7');var nonredundant7 = unique(arr);console.timeEnd('nonredundant7');console.log(nonredundant7);

結果如下:

JavaScript常用8種數組去重代碼實例

8.使用reduce和include去重

function unique(arr){ return arr.reduce((prev,cur) => prev.includes(cur) ? prev : [...prev,cur],[]);}var arr = [’qiang’, ’ming’, ’tao’, ’li’, ’liang’, ’you’, ’qiang’, ’tao’];console.time('nonredundant8');var nonredundant8 = unique(arr);console.timeEnd('nonredundant8');console.log(nonredundant8);

結果如下:

JavaScript常用8種數組去重代碼實例

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 成都办公室装修-办公室设计-写字楼装修设计-厂房装修-四川和信建筑装饰工程有限公司 | 齿轮减速马达一体式_蜗轮蜗杆减速机配电机-德国BOSERL齿轮减速电动机生产厂家 | 污水处理设备-海普欧环保集团有限公司| 东莞工厂厂房装修_无尘车间施工_钢结构工程安装-广东集景建筑装饰设计工程有限公司 | 聚合氯化铝厂家-聚合氯化铝铁价格-河南洁康环保科技 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 | 全自动包衣机-无菌分装隔离器-浙江迦南科技股份有限公司 | 雷蒙磨,雷蒙磨粉机,雷蒙磨机 - 巩义市大峪沟高峰机械厂 | 生鲜配送系统-蔬菜食材配送管理系统-连锁餐饮订货配送软件-挪挪生鲜供应链管理软件 | 【直乐】河北石家庄脊柱侧弯医院_治疗椎间盘突出哪家医院好_骨科脊柱外科专业医院_治疗抽动症/关节病骨伤权威医院|排行-直乐矫形中医医院 | 螺杆泵_中成泵业| 天一线缆邯郸有限公司_煤矿用电缆厂家_矿用光缆厂家_矿用控制电缆_矿用通信电缆-天一线缆邯郸有限公司 | 岩棉板|岩棉复合板|聚氨酯夹芯板|岩棉夹芯板|彩钢夹芯板-江苏恒海钢结构 | 不锈钢闸阀_球阀_蝶阀_止回阀_调节阀_截止阀-可拉伐阀门(上海)有限公司 | 自动气象站_农业气象站_超声波气象站_防爆气象站-山东万象环境科技有限公司 | 罗茨真空机组,立式无油往复真空泵,2BV水环真空泵-力侨真空科技 | 冷库安装厂家_杭州冷库_保鲜库建设-浙江克冷制冷设备有限公司 | 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 彩超机-黑白B超机-便携兽用B超机-多普勒彩超机价格「大为彩超」厂家 | 济南律师,济南法律咨询,山东法律顾问-山东沃德律师事务所 | 澳威全屋定制官网|极简衣柜十大品牌|衣柜加盟代理|全屋定制招商 百度爱采购运营研究社社群-店铺托管-爱采购代运营-良言多米网络公司 | 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 集装箱标准养护室-集装箱移动式养护室-广州璟业试验仪器有限公司 | 事迹材料_个人事迹名人励志故事 学生作文网_中小学生作文大全与写作指导 | 施工围挡-施工PVC围挡-工程围挡-深圳市旭东钢构技术开发有限公司 | 电磁流量计_智能防腐防爆管道式计量表-金湖凯铭仪表有限公司 | 对辊式破碎机-对辊制砂机-双辊-双齿辊破碎机-巩义市裕顺机械制造有限公司 | 多米诺-多米诺世界纪录团队-多米诺世界-多米诺团队培训-多米诺公关活动-多米诺创意广告-多米诺大型表演-多米诺专业赛事 | 重庆轻质隔墙板-重庆安吉升科技有限公司 | 喷涂流水线,涂装流水线,喷漆流水线-山东天意设备科技有限公司 | 机房监控|动环监控|动力环境监控系统方案产品定制厂家 - 迈世OMARA | 震动筛选机|震动分筛机|筛粉机|振筛机|振荡筛-振动筛分设备专业生产厂家高服机械 | 昆山新莱洁净应用材料股份有限公司-卫生级蝶阀,无菌取样阀,不锈钢隔膜阀,换向阀,离心泵 | 亮点云建站-网站建设制作平台 | 点胶机_点胶阀_自动点胶机_智能点胶机_喷胶机_点胶机厂家【欧力克斯】 | 退火炉,燃气退火炉,燃气热处理炉生产厂家-丹阳市丰泰工业炉有限公司 | 合肥钣金加工-安徽激光切割加工-机箱机柜加工厂家-合肥通快 | 干法制粒机_智能干法制粒机_张家港市开创机械制造有限公司 | 铸铝门厂家,别墅大门庭院大门,别墅铸铝门铜门[十大品牌厂家]军强门业 | 【铜排折弯机,钢丝折弯成型机,汽车发泡钢丝折弯机,线材折弯机厂家,线材成型机,铁线折弯机】贝朗折弯机厂家_东莞市贝朗自动化设备有限公司 | 智能门锁电机_智能门锁离合器_智能门锁电机厂家-温州劲力智能科技有限公司 |