js 数组去重面试题
时间: 2024-01-12 22:22:38 浏览: 102
以下是两种JS数组去重的方法:
1.利用indexOf来去重
```javascript
const arr = [1,2,3,4,5,6,6,5,4,3,2,1,0];
const newArr = arr.filter((it, index, list) => list.indexOf(it) === index);
console.log(newArr); // 输出:1 2 3 4 5 6 0
```
2.利用Set去重
```javascript
const arr = [1,2,3,4,5,6,6,5,4,3,2,1,0];
const newArr = [...new Set(arr)];
console.log(newArr); // 输出:1 2 3 4 5 6 0
```
相关问题
面试题:写对象属性名去重的方法
可以使用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']
```
注意:此方法只能去重对象的属性名,不能去重属性值。如果需要去重属性值,需要对属性值进行比较。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20250102104920.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20250102104920.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20250102104920.png)
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)