11111
<!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>
</body>
<script>
// let filter_arrObj = [];
// let arrObj = [
// {
// name: 'xiaoqing',
// age: 15,
// sex: 0
// },
// {
// name: 'xiaoming',
// age: 12,
// sex: 0
// },
// {
// name: 'xiaobai',
// age: 21,
// sex: 0
// },
// {
// name: 'xiaoqing',
// age: 25,
// sex: 0
// },
// ]
// filter_arrObj = arrObj.filter((item, index, origin) =>
// // console.log(filter_arrObj)
// index === origin.findIndex(itemInner => {
// return itemInner.name === item.name
// }
// ))
// console.log(filter_arrObj)
let arrObj = [
{ name: "小红", id: 1 },
{ name: "小橙", id: 1 },
{ name: "小黄", id: 4 },
{ name: "小绿", id: 3 },
{ name: "小青", id: 1 },
{ name: "小蓝", id: 4 }
];
// 方法一:
let map = new Map();
for (let item of arrObj) {
if (!map.has(item.id)) {
map.set(item.id, item);
};
};
arr = [...map.values()];
console.log(arr);
// // 方法二: (代码较为简洁)
// const map = new Map();
// const newArr = arrObj.filter(v => !map.has(v.id) && map.set(v.id, v));
// // const newArr = [...new Map(arrObj.map((v) => [v.id, item])).values()];
// console.log(newArr);
// let arr = [
// {
// name: 'xiaoli',
// age: 11
// },
// {
// name: 'xiaolili',
// age: 12
// },
// {
// name: 'xiaolili',
// age: 12
// }
// ]
// function handleArr(arr) {
// let obj = {};
//新建一个空的对象
// let newArr = [];
//新建一个空的数组
// arr.forEach(item => {
// 当对象中该属性不存在时,则将这一项放入新数组中,同时该属性放入对象中,并且将该属性值赋值为true;在这里主要是为了去除数组中相同名字这一项;
// if (!obj[item.name]) {
// newArr.push(item);
// obj[item.name] = true;
// }
// });
// return newArr
// }
// let result = handleArr(arr);
// console.log(result, '最后的结果')
//[{name: 'xiaoli', age: 11}, {name: 'xiaolili', age: 12}]
</script>
</html>