javascript - 如何扩展内置对象“Set”以获取最后存储的值?
问题描述
我想扩展内置 js 对象Set以赋予它更多功能。我希望能够获得最后存储的项目的价值。我的代码片段就是这样做的,
class MySet extends Set {
add(value) {
super.add(value);
this.last = value;
}
}
let a = new MySet([1, 2, 3]);
a.add(1);
console.log(a.last); //1
但如果我尝试添加重复值,则会出现问题。在以下代码段中,最后存储的值是 3,而不是 1,但使用我的方法我得到 1。
所以我一直想知道如何扩展它,以便获得实际的最后存储值。
解决方案
这是一个简单的解决方法
class MySet extends Set {
add(value) {
if (!super.has(value)) {
super.add(value);
this.last = value;
}
}
}
let a = new MySet([1, 2, 3]);
a.add(1);
console.log(a.last); //3
推荐阅读
- html - 侧栏中的响应式页脚重叠 li 标签
- python - 更改绘图颜色 seaborn 包
- php - Symfony 看不到秘密变量
- c# - 如何在 WPF 的菜单中设置输入手势文本的水平对齐方式?
- python - 如何将图像转换为numpy数组
- git - 如何删除 2 个旧提交?
- android - Android Material Slider OnChangeListener 响应延迟/跳过问题
- node.js - Puppeteer - 检查 xPath 元素是否可见
- python - 如何使用 bitcoinlib 获取与我的公钥关联的所有地址?
- swift - 为什么我的计数器比实际值落后 1?