一、普通数组,利用ES6的Set去重
function Deduplication(arr){
return Array.from(new Set(arr));
}
或者
function Deduplication(arr){
return [...new Set(arr)];
}
let arrs = ["aaa", "aaa", "san", "www", "san"];
console.log(Deduplication(arr)) // ["aaa", "san", "www"]
参考: GitBook
二、数组对象去重,根据名字去重
- 定义一个对象obj,用于装数组对象中的数据,键为name,值为boolean值,定义一个result装结果
- 遍历数据arrs,name第一次出现的时候,将数据push进result。
//根据name,给数组对象去重
function Deduplication(arrs) {
var obj = {
};
let result = [];
arrs.forEach(val => {
if (!obj[val.name]) {
// 说明 name第一次出现,
obj[val.name] = true; // obj的键为数据name,值为true,代表该name出现了,此次就不会进if,故不会将出现过的name再次push到result中了。
result.push(val);
}
});
return result;
}
let arrs = [
{
name: "aaa" },
{
name: "aaa" },
{
name: "san" },
{
name: "www" },
{
name: "san" }
];
console.log(Deduplication(arrs)) // [{name: "aaa"}, {name: "san"}, {name: "www"}]