题目: 找出被修改过的数字
出题人:阿里巴巴新零售技术质量部
参考答案:
emmm假设背景是寻找数组中被修改的数字或者元素,我使用代理的方式来监听数组中元素的变化,并将变化的最后数值和次数储存在额外空间中
参考代码:
const arr =[1,2,3,4,5,6,7,8,89,9,9,9,9,99];
const saveModifyNum={
}
const watchNumChangeProxy=new Proxy(arr,{
set:function(target,key,value){
let {count} = Reflect.get(saveModifyNum,target[key])||{count:0,value};
++count;
return Reflect.set(saveModifyNum,target[key],{
count,
value
});
}
})
watchNumChangeProxy[0]=2;
watchNumChangeProxy[0]=3;
watchNumChangeProxy[0]=4;
//{ '1': { count: 3, value: 4 } }
- 原文作者:知识铺
- 原文链接:https://geek.zshipu.com/post/%E9%9D%A2%E8%AF%95/03.%E7%99%BE%E5%BA%A6%E7%AF%87/3.4.9-%E6%89%BE%E5%87%BA%E8%A2%AB%E4%BF%AE%E6%94%B9%E8%BF%87%E7%9A%84%E6%95%B0%E5%AD%97/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
- 免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 sblig@126.com