实现destructivelyDeleteFromEmployeeByKey函数破坏性修改原对象
函数实现方法
这个函数要求做破坏性删除——也就是直接修改传入的原对象,不生成新的对象副本,最终返回修改后的原对象,直接用JS原生的delete操作符就能满足要求,实现代码如下:
function destructivelyDeleteFromEmployeeByKey(employee, key) { delete employee[key]; return employee; }
实现逻辑说明
delete操作符会直接在原始对象上移除指定键对应的属性,不会创建对象副本,修改会直接作用在传入的employee上- 删除操作完成后直接返回原始
employee对象,保证返回值和传入的原对象是同一个引用,完全匹配测试要求:- 返回的对象上已经没有被删除的键,访问对应属性得到
undefined - 原始传入的
employee对象同步被修改,且和返回值严格相等
- 返回的对象上已经没有被删除的键,访问对应属性得到
注意:不要用解构rest语法、
Object.assign这类会生成新对象的写法,这类写法属于非破坏性修改,会导致原对象没有被变更、返回值和原对象引用不一致,无法通过第二个测试用例。
内容的提问来源于stack exchange,提问作者LA Fnd
相关产品推荐
相关产品推荐

