去除数组中某一属性值相同的对象元素

70 阅读1分钟
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>

链接消息:blog.csdn.net/weixin_5599…