面试题答案
一键面试实现代码
Array.prototype.unique = function() {
return Array.from(new Set(this));
};
原理
通过将数组对象添加到 Array.prototype
上,使得所有数组实例都可以访问这个新方法。new Set(this)
会利用Set数据结构的特性(成员唯一),将数组中的重复元素过滤掉。Array.from
则是将Set对象转换回数组。
可能带来的影响
- 优点:方便了数组去重操作,提高了代码的复用性,开发者在使用数组时可以直接调用
unique
方法进行去重,不需要每次都手动实现去重逻辑。 - 缺点:会污染原生的
Array.prototype
,可能与未来JavaScript标准新增的方法产生命名冲突。同时,对于不熟悉原型链扩展的开发者,可能在维护代码时造成一定困惑。