[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}]
复制代码

 

posted @   Zhentiw  阅读(160)  评论(0编辑  收藏  举报
编辑推荐:
· 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
点击右上角即可分享
微信分享提示