尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

js去重的几种方法

发布时间:2026/9/16 4:47:37

资讯中心
01
ARTICLE

js去重的几种方法

js去重的几种方法
1. arr.includes(item) arr数组里面是否包含item这个元素,返回true或者false,与arr.indexOf(item) -1相反(等于-1说明不包含这个元素)let arr [1,2,3,3,2,1] var newArr []; for(var i in arr){ !newArr.includes(arr[i]) newArr.push(arr[i]) } console.log(newArr)2.reducearray.reduce(function(total, currentValue, currentIndex, arr), initialValue)参数参数描述function(total,currentValue, index,arr)必需。用于执行每个数组元素的函数。函数参数:参数描述total必需。初始值, 或者计算结束后的返回值。currentValue必需。当前元素currentIndex可选。当前元素的索引arr可选。当前元素所属的数组对象。initialValue可选。传递给函数的初始值let arr [1,2,3,3,2,1] var newArr arr.reduce(function (prev, cur) { !prev.includes(cur) prev.push(cur); return prev; },[]); console.log(newArr)3.Set这种数据类型里面的元素必须保证唯一性,所以正好可以处理这个问题:let arr [1,2,3,3,2,1]console.log(new Set(arr))// 直接使用扩展运算符就能再转化为数组console.log([...new Set(arr)]);4.利用对象的key是唯一性的特点也可以去重let arr [1,2,3,3,2,1]let obj {}arr.forEach(ee{obj[ee] })console.log(Object.keys(obj))5.Mapconst map new Map(); const oldArr [0, 5, 8, 5, 7, 3, 9, 1, 1, 0]; oldArr.forEach(item { if (!map.get(item)) { map.set(item, { val: item }); } }); console.log(map, map); console.log(map.keys(), map.values()); const arr1 Array.from(map.values(), ee ee.val); const arr2 Array.from(map.keys()); console.log(arr1, arr2, Array.isArray(arr1), Array.isArray(arr2));6.lodash_.uniq([1, 2, 2, 3, 3]); // [1, 2, 3] _.uniqBy([{ id: 1 }, { id: 1 }, { id: 2 }], id); // [{id:1}, {id:2}]
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。