news 2026/8/7 17:11:27

js去重的几种方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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.reduce

array.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.Map

const 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}]
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/7 17:09:25

基于Stable Diffusion与ComfyUI实现AI角色动画生成:以猎空捣蒜舞为例

这次我们来看一个名为“依旧猎空捣蒜舞~肚脐才是重点”的项目。从标题来看,这很可能是一个与《守望先锋》角色“猎空”相关的AI生成内容项目,具体可能涉及角色动画、舞蹈视频生成,或是基于特定提示词的图像/视频创作。这类项目通常…

作者头像 李华
网站建设 2026/8/7 17:09:18

从玩具到生产:Harness Engineering如何驾驭大语言模型构建可靠AI应用

1. 从“玩具”到“工程”:为什么我们需要 Harness Engineering 如果你最近在捣鼓大语言模型,不管是调用 OpenAI 的 API 写个聊天机器人,还是用开源的 Llama 模型搞点本地应用,大概率经历过这样的场景:写几行代码&#…

作者头像 李华
网站建设 2026/8/7 17:09:09

Bilidown终极指南:如何高效下载B站8K超高清视频

Bilidown终极指南:如何高效下载B站8K超高清视频 【免费下载链接】bilidown 哔哩哔哩视频解析下载工具,支持 8K 视频、Hi-Res 音频、杜比视界下载、批量解析,可扫码登录,常驻托盘。 项目地址: https://gitcode.com/gh_mirrors/bi…

作者头像 李华
网站建设 2026/8/7 17:07:53

apb/axi异步桥实现

1.基本异步处理电路 1.1电平同步 1.2脉冲同步 现将脉冲变成电平,同步之后再恢复, 1.下面是脉冲展电平的做法 2.下面是电平恢复脉冲 1.3异步fifo 1.4dmux同步/qualifier 同步 DMUX(data Mux)通过一个同步到目标时钟域的信号作为目标时钟域多比特数据更新的使能信号 其实…

作者头像 李华