[Javascript] 4 ways to remove duplicates elements from an array with Javascript
Remove duplicates elements from an array is a common array task Javascript offers different alternatives to accomplish it. You can use a mix of methods like Array.filter
and Array.indexOf
or a more complex method and also more flexible as Array.reduce
or just a simple Array.forEach
that allows you tu iterate over the array in an imperative way. Or you can also use more complex data estructures as Set
/* IndexOf */ let dataArr = ["1", "5", "6", "1", "3", "5", "90", "334"]; let resultArr = dataArr.filter((data, index) => { return dataArr.indexOf(data) === index; }); console.log(resultArr); //["1", "5", "6", "3", "90", "334"] /** SET */ dataArr = ["1", "5", "6", "1", "3", "5", "90", "334", "90"]; //creates Set object from array of unique element const dataArrWithSet = new Set(dataArr); //we can create Set object to array also using spread operator resultArr = [...dataArrWithSet]; console.log(resultArr); /* Reduce */ dataArr = ["1", "5", "6", "1", "3", "5", "90", "334", "90"]; resultArr = dataArr.reduce((acc, item) => { if (!acc.includes(item)) { acc.push(item); } return acc; }, []); console.log(resultArr); //["1", "5", "6", "3", "90", "334"] /* Foreach */ dataArr = ["1", "5", "6", "1", "3", "5", "90", "334", "90"]; const uniqueArr = []; dataArr.forEach(item => { //pushes only unique element if (!uniqueArr.includes(item)) { uniqueArr.push(item); } }); console.log(uniqueArr); //["1", "5", "6", "3", "90", "334"] /* From Objects using Map */ var arrOfObj = [ { name: "abc", age: 27 }, { name: "pqr", age: 27 }, { name: "abc", age: 27 } ]; dataArr = arrOfObj.map(item => { return [item.name, item]; }); // creates array of array var maparr = new Map(dataArr); // create key value pair from array of array var result = [...maparr.values()]; //converting back to array from mapobject console.log(result); //[{"name":"abc","age":27},{"name":"pqr","age":27}] /** Using Set */ arrOfObj = [ { id: 1, name: "abc", age: 27 }, { id: 2, name: "pqr", age: 27 }, { id: 1, name: "abc", age: 27 } ]; var setObj = new Set(); // create key value pair from array of array result = arrOfObj.reduce((acc, item) => { if (!setObj.has(item.id)) { setObj.add(item.id, item); acc.push(item); } return acc; }, []); //converting back to array from mapobject console.log(result); //[{"id":1,"name":"abc","age":27},{"id":2,"name":"pqr","age":27}]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2017-08-12 [Angular] Component architecture and Reactive Forms
2016-08-12 [Practical Git] Remove unnecessary git tracking with .gitignore files
2016-08-12 [Practical Git] Configure global settings with git config
2016-08-12 [Practical Git] Diagnose which commit broke something with git bisect
2016-08-12 [Practical Git] Clean up commits with git rebase
2016-08-12 [Practical Git] Show who changed a line last with git blame
2016-08-12 [Practical Git] Compare file changes with git diff