js 数组去重面试题
时间: 2024-01-12 09:22:38 浏览: 97
以下是两种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和Object.keys()方法来实现对象属性名去重:
```javascript
function uniqueKeys(obj) {
return Object.keys(obj).filter((key, index, keys) => keys.indexOf(key) === index);
}
const obj = {a: 1, b: 2, a: 3};
const uniqueObj = {};
uniqueKeys(obj).forEach(key => {
uniqueObj[key] = obj[key];
});
console.log(uniqueObj); // {a: 3, b: 2}
```
以上代码中,uniqueKeys()函数接受一个对象参数,返回该对象的属性名去重后的数组。然后我们可以使用forEach()方法将去重后的属性名逐个赋值给新的对象uniqueObj中。最终得到的uniqueObj对象就是没有重复属性名的原始对象。
阅读全文