<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
function unique(arr) {
let unique = {};
arr.forEach(function (item) {
unique[orderedJsonStringify(item)] = item;
//或者改为下面这句
// unique[JSON.stringify(item, Object.keys(item).sort())]=item;
})
arr = Object.keys(unique).map(function (u) {
//Object.keys()返回对象的所有键值组成的数组,map方法是一个遍历方法,返回遍历结果组成的数组.将unique对象的键名还原成对象数组
return JSON.parse(u);
})
return arr;
}
function orderedJsonStringify(o) {
return JSON.stringify(Object.keys(o).sort().reduce((r, k) => (r[k] = o[k], r), {}));
}
const books = [
{
author: "Oyinkan Braithwaite",
name: "My Sister the Serial Killer"
},
{
name: "Educated",
author: "Tara Westover"
},
{
author: "Oyinkan Braithwaite",
name: "My Sister the Serial Killer"
}
];
console.log(unique(books))
// {author: "Oyinkan Braithwaite", name: "My Sister the Serial Killer"}
// {author: "Tara Westover", name: "Educated"}
</script>
</body>
</html>
工具函数 数组对象去重
最新推荐文章于 2024-08-21 08:43:16 发布