面试题:写对象属性名去重的方法
时间: 2023-08-10 17:09:44 浏览: 55
可以使用ES6中的Set数据结构来实现对象属性名去重的方法,具体实现如下:
```javascript
function removeDuplicateProps(obj) {
// 获取对象所有的属性名
const props = Object.getOwnPropertyNames(obj);
// 定义一个Set集合,用于存储不重复的属性名
const propSet = new Set();
// 遍历属性名数组,将不重复的属性名添加到Set集合中
for (let i = 0; i < props.length; i++) {
propSet.add(props[i]);
}
// 将Set集合转换为数组,并返回
return Array.from(propSet);
}
```
使用示例:
```javascript
const obj = {
name: 'Tom',
age: 18,
gender: 'male',
name: 'Jerry', // 重复的属性名
height: 180,
weight: 70,
gender: 'female' // 重复的属性名
};
const props = removeDuplicateProps(obj);
console.log(props); // ['name', 'age', 'gender', 'height', 'weight']
```
注意:此方法只能去重对象的属性名,不能去重属性值。如果需要去重属性值,需要对属性值进行比较。