第 162 题:实现对象的 Map 函数类似 Array.prototype.map
// 实现一个 map 函数 const targetData = { a: 2, b: 3, c: 4, d: 5 }; const objMap = (obj, fn) => { if (typeof fn !== "function") { throw new TypeError(`${fn} is not a function !`); } return JSON.parse(JSON.stringify(obj, fn)); }; objMap(targetData, (key, value) => { if (value % 2 === 0) { return value / 2; } return value; }); // {a: 1, b: 3, c: 2, d: 5}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
为什么怎么多人搞深克隆
对的,虽然不会被
JSON.stringify
返回但是做个判断总是好的这个实现有问题,首先JSON.stringify(obj, fn)中第一次传入fn中的参数为 ""和对象本身,从第二次开始才会传入key和val,所以应该加上条件处理。